Onenote をOnenote for Windows10 から Windows11 対応の Onenote にアップグレードしたらバックアップできなかった時の解決方法
事象)
Onenote for Windows10 から Windows11 対応の Onenote にアップグレード


この時、今すぐ切り替える→開始クリック後に旧10Ver Noteのバックアップの作成が指示されたので実行。その後、新Onenoteでバックアップを開くと正常に移行できた。
しかしMicrosoftアカウントのクラウドストレージ上限を超過していたためクラウド上で同期はしていない状態だった。
このタイミングでPCが破損、ローカルに存在したバックアップも消失。クラウド上に新Onenote用のnoteファイルも存在していない状態。サブのWin10 PC があったのでもう一度旧noteの移行を試みようとするも同じステップを踏んでもバックアップの作成ダイアログが表示されず空の新Onenoteがインストールされた。旧 Onenote に手動でバックアップする方法を調べたが見つからない。
Solution)
- 旧Onenoteで移行させたいノートブックを開く
- Windows タスクバーの検索ボックスで Onenote を検索
- 新Onenote の最近使ったアイテムに移行させたいノートブックが表示されるのでそこから開く
- 新Onenote に無事移行される。
復旧できたのはクラウド上限に達する前に保存された旧Note部分(非同期分は壊れた旧PCのローカルにあるので当たり前)なので事故る前にクラウド上限は超えないようにしましょう。
OCI: クラウドシェル上で dockerfile をマルチプラットフォームビルドしようとしたらエラー ERROR: failed to solve: process "/bin/sh -c apt-get install -y zlib1g-dev mariadb-client vim libzip-dev && docker-php-ext-install zip pdo_mysql bcmath" did not complete successfully: exit code: 134
事象)
OCI のクラウドシェル上で dockerfile をマルチプラットフォームビルドしようとしたらエラー
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t <username>/<image>:v1.0 --push .
ERROR: failed to solve: process "/bin/sh -c apt-get install -y zlib1g-dev mariadb-client vim libzip-dev && docker-php-ext-install zip pdo_mysql bcmath" did not complete successfully: exit code: 134
環境)
コードシェルのアーキテクチャ>ARM64
ビルド中のログを見るとARMアーキテクチャはビルドできているが AMD64 でエラーが発生。
Solution)
OKEをリソースマネージャースタックから作成
クイック作成したOKEをリソースマネージャスタックから作成する方法
OKEのクラスタの作成から設定事項を選択後、クラスタの作成ボタンを実行せずにスタックとして保存を実行
このままの状態でリソースマネージャ⇒スタックの適用を実行すると
Error: can not omit nil fields for field: NodeConfigDetails, due to: can not omit nil fields for field: NodePoolPodNetworkOptionDetails, due to: can not omit nil fields for field: PodSubnetIds, due to: can not omit nil fields, data was expected to be a not-nil list
with oci_containerengine_node_pool.create_node_pool_details0,
on main.tf line 284, in resource "oci_containerengine_node_pool" "create_node_pool_details0"
284: resource "oci_containerengine_node_pool" "create_node_pool_details0" {
エラーが返る。
スタックのTrraform構成をコードエディタで編集

pod_subnet_ids = ["${oci_core_subnet.node_subnet.id}"] を追記
必ず左側のディレクトリのスタックを右クリックして変更を適用する。
これで適用を実行すると正常にスタックが構成される。
OCI terraform stack の template をカスタムして Kubernetes クラスタを基本クラスタでデプロイする
環境:
使用template >>> 下記リンク先 カナリアOKE
編集なしで手順を進むとスタックの変数の構成にクラスタのタイプの選択がないので拡張クラスタでデプロイされる。拡張クラスタだと1か月稼働させると1万円~になる。
手順)
- カナリアOKE の Deploy to Oracle Cloud ボタンをクリック
- OCIコンソールに移るのでスタックの変数を入力(クラスタタイプの選択肢はここでは無い)
- 作成されたスタックで適用を実行箇所で【適用の実行】をチェックしないで作成
- 作成したスタックの編集ボタンからTerraform構成をコード・エディタで編集を選択
- Cloud Shellが起動してterraform ファイルを編集する
変数の追加
>>> oke-variables.tf に下記を追記

OKEモジュールに変数を追加
>>> oke.tf に下記を追記

schemeに変数を追加


編集後にスタックのディレクトリを右クリックして変更の保存をクリック

スタックの編集画面でCluster Type を定義することができるようになっているのを確認。
スタックを適用すると無事基本クラスタでデプロイできるようになる。
****注意****
適用に失敗したリソースが残っているとエラーが出るのでスタックは完全にクリアーな状態で適用を実行する。
従量課金状態だと基本クラスタは一つしか作成できないことに注意。基本クラスタを保有済みだとエラーが出る。
参照:
OCI: OKE プライベートエンドポイントしか持たないKubernetes クラスタに クラウドシェルからアクセスする方法
Updated: 2024/08/20
環境)
プライベートエンドポイント、ノードタイプ>管理対象、プライベートワーカーノード、基本クラスタで作成
Solution)
オフィシャルドキュメントであまり触れられていないがプライベートエンドポイントでもクラウドシェルからアクセスることはできる。
ref)
https://blogs.oracle.com/oracle4engineer/post/ja-securely-access-private-resources
クラウドシェルをプライベートネットワークからアクセスする
まずクラウドシェルの画面を開いてネットワーク設定から

プライベートネットワーク定義リスト>プライベートネットワーク定義の作成を開き
コンパートメント>クラスタのあるコンパートメントを選択
サブネット>Kubernetesクラスタエンドポイントのあるサブネットを選択
ネットワークセキュリティグループは任意(作成したプライベートネットワークへのアクセスを制御)
次に
kubectl config show でアクセスしたい対象のクラスタがkubeconfigに登録されているか確認
endpointのIP情報などがあれば登録済み無ければ
OKEコンソールから対象クラスタのページを開いてクラスタへのアクセスダイアログを開き、

上記をそのままコピペで実行。
kubectl config view で対象クラスタが追加されたかを確認。
kubeconfig では複数のクラスタを管理できるので現在 kubectlがどのクラスタを管理しているかを確認
kubeclt config get-contexts
これでアクセスしたいクラスタにcontextが設定されているかを確認。
context が違ったら
kubectl config use-context <対象クラスタコンテクスト>
最後にクラスタのエンドポイントのあるサブネットにセキュリティリストを設定する。
ref)
Kubernetes API エンドポイントにアクセスするための要塞設定>VNC管理者ステップの項
イングレスとエグレスで6443ポートを開ける
エグレス
宛先> エンドポイントのIP/32 宛先ポート6443
イングレス
ソース 0.0.0.0/0 (プライベートネットワークで設定したクラウドシェルのIPが不明なため。セキュリティに関して要検証) 宛先ポート6443
以上の設定で
クラウドシェルから
kubeclt get nodes を実行すると情報を取得できるようになる。
公式ドキュメントではプライベートエンドポイントへのメインの接続方法としてBastion越しの接続が紹介されているがBastion用のプライベートサブネットの作成というのがよくわからなかった。
ref)
注意)
クラウドシェルのプライベート接続を作成するとサブネットの削除でエラーが出るのでサブネットを削除したくなった場合は先にプライベート接続を削除する。
Windows で OCI CLI のインストールに失敗する問題
環境:
windows11 Home Edition
事象:
公式Docの手順に従うと
Installing collected packages: wcwidth, pytz, circuitbreaker, types-python-dateutil, terminaltables, six, PyYAML, pycparser, prompt-toolkit, jmespath, colorama, certifi, python-dateutil, click, cffi, cryptography, arrow, pyOpenSSL, oci, oci_cli
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'c:\\users\\aaaa\\lib\\oracle-cli\\Lib\\site-packages\\oci_cli\\help_text_producer\\data_files\\text\\cmdref\\database-management\\managed-database\\enable-external-pluggable-database-management-feature-external-pluggable-database-diagnostics-and-management-feature-details.txt'
HINT: This error might have occurred since this system does not have Windows Long Path support enabled. You can find information on how to enable this at https://pip.pypa.io/warnings/enable-long-paths
とエラー
solution)
windowsのファイルパスの長さが制限されているためエラーが発生しているのでWindows Long Path Supportを有効にする。

設定変更後
./install.ps1
で無事インストールできた。
Ubuntu PHP8.2 zip extension がインストールできない
環境:
ubuntu@18.0.4
PHP@8.2
事象:
あるパッケージをインストールしようとしたら
require ext-zip * -> it is missing from your system. Install or enable PHP's zip extension.
とエラー
sudo apt-get install php-zip を実行してもインストール済みと返る。
別のバージョンのPHPにはインストールされているがPHP8.2用のがインストールできない。
sudo pecl zip で pecl でインストールを試みるも
checking libzip... yes
checking PHP version... 8.1/8.2/8.3
checking for pkg-config... /usr/bin/pkg-config
checking for libzip... not found
configure: error: Please reinstall the libzip distribution
ERROR: `/tmp/pear/temp/zip/configure --with-php-config=/usr/bin/php-config' failed
でエラーが返る。
solution)
chatGPT 曰く
sudo apt-get install libzip4=1.1.2-1.1 libzip-dev=1.1.2-1.1
sudo pecl zip
これで解決