oci cli の設定手順が今までより簡単になりました。
configファイルの雛形が作られるようになりました、変更点は、Linux版、PowerShell版共通ですので、ここでは、事例の少ないPowershellでインストール手順をまとめます。
oci cliのPCへのインストール
CMDを管理者モードで起動して、oci cliのインストール、この部分は以前とは変わっていません。Linux版も変わっていません。
powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1'))"
oci cli自体はpythonですが、python3のインストールも含めて実行されます。また、pipもインストールされます。むしろpython2などがあると、かえってトラブルになるのでpython系はpipも含めて何も事前には入っていないほうが楽ではないかと思います。
対話的に入力する情報は、ここでは従来どおり 空エンターまたはY で先に進みます。
ociというコマンドが認識される状態になればここでのインストールは完了です。
OCI側での設定
OCI実行対象ユーザーの選択
初期状態でも最低、アカウントは2個はあります、フェデレーテッドがはいとなっているIDCSユーザーと、フェデレーテッドがいいえとなっているIAM ユーザーです。
どちらでも動きますが、特にIAMでなくてはならない理由はないので、あらゆるPaaSサービスが動かせるIDCSユーザーに対して設定することにします。
ociを起動する権限を与える対象のユーザーアカウントを選んで
アイデンティティ > ユーザー > APIキー > APIキーの追加
最初はAPIキーはありませんが、ここでは、APIキー・ペアの生成を選んでOCI上で生成します。
生成したら、秘密キーと公開キーをダウンロードします。OCI上でAPIキーが生成可能になったのも、最近の機能追加ですので、古い手順書だと、ローカルからのキーのアップロードという手法に確定してますが、今となっては、特に理由なくば、この場でキーを生成したほうが手軽だと思います。
本来必要なのは秘密キーのみですが、公開キーを持っておくと、OCI以外のマシンに対しても公開キーを与えることで、sshログインできるようになるので、後々のために両方ダウンロードしておきます、後からのダウンロードはできません。
続いて 追加を押すと config ファイルの雛形が表示されます
右下のコピーを押してconfigファイルの雛形をコピーします、この機能が新しくて、今までは、各行のデータを手作業で集めていましたが、それは不要になりました。
PCへのconfigファイルの登録
*c:\Users\<ユーザーID>\* の場所で .oci のサブディレクトリーの作成
mkdir .oci で作成
Linuxの場合は、この後 chmod 600 とやってアクセス制限をかけますが、Windowsでは、これに相当する設定はありません。
もしも、ociコマンド使用時にアクセス範囲が広すぎてセキュアではないというWARNINGが出る場合は、環境変数に
OCI_CLI_SUPPRESS_FILE_PERMISSIONS_WARNING=True
という環境変数をOSに仕込むと抑止できますが、最近のversionでは、このエラーは見かけなくなっています、もう不要なのかもしれません。
configファイルの編集
c:\Users<userid>.oci\config の編集
c:\Users\<ユーザーID>\.oci\config
の位置に、OCIコンソールからダウンロードしたconfigファイルを配置して #TODOの部分を修正します。
key_file= # TODO
となっていた行を下記のイメージで書き換えます
[DEFAULT]
user=ocid1.user.oc1..aaaaaaaa27oscni2oxnj2riqaq735flmiebiyqnXXXXXXXXXXsv2gy6bggya
fingerprint=7d:5f:65:77:cb:7b:8a:cc:2e:2f:69:xx:xx:xx:xx:xx
tenancy=ocid1.tenancy.oc1..aaaaaaaav4pe2jbu3nuwxwackpe3bwXXXXXXXXXXup2e2sdpw5ikcm3akf2q
region=sa-saopaulo-1
key_file=c:\Users\<ユーザーID>\.oci\privatekey.pem
ここで key_file のパスの書き方は、Windowsの場合はの場合はフルパスで書きます。
Linux Macの場合は ~/.oci/privatekey.pem みたいに書けますが
Windowsの場合は、絶対パスでしか書けません、 %USERHOME% とか $env:USERHOME とか使って書いても、効きません。
動作確認
oci iam user list
で、アクセス可能なuser listが出ることの確認
今までと何が違うか
oci setup configが必須ではない
configの雛形が提供された
保守
oci cli のインストール時にpipもinstallされているので 更新はpipで行えます。
oci -v で現行version確認
管理者モードで pip install oci-cli
再度oci -v でversionが最新化されたことを確認
参考リンク
コマンドライン・インタフェース(CLI) 公式
github
Oracle Cloud用の oci cliを導入
まとめ
ちょっとずつインストールが便利になってきています。
従来の導入手順のままでもインストールはできるので、この手順は必須ではないです。
Linux版が主流ですがPowershellでもCMDでもCLIは普通に動きます。
Pythonアプリの最新化はpip installで更新できるのでpip使うべき。
今まで設定ミスして放置していたアカウントのCLIの設定がこの新方法で、どこにあったのかわかりませんでしたが記述ミスを解消して、CLIが復活できました。
以上