Windows マシンに Oracle Cloud Infrastructure の CLI をインストールする際にすこし手間取ったのでメモ書き。
基本的にこれに沿って実施しているので,公式ドキュメントで十分な人であればこの記事はいらない。
OCI CLI のインストール
①PowerShell を管理者権限で開く
もし Windows PowerShell しかない場合は,念のため最新の(OSS 化した)PowerShell をインストールしておくとよい。
see: https://github.com/PowerShell/PowerShell/releases
②実行ポリシを RemoteSigned に変更する
後段にてダウンロードした PowerShell スクリプトを実行するため,実行ポリシを RemoteSigned に変更する。
いまのPowerShellプロセスのみに適用されるようスコープを指定しておくとよいです。
Set-ExecutionPolicy RemoteSigned -Scope Process
③インストールスクリプトをダウンロードする
以下のコマンドを実行。
Invoke-WebRequest https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1 -OutFile install.ps1
もし SSL/TLS のセキュリティで保護されているチャネルを作成できませんでした
エラーが発生した場合は,以下記事を参考に TLS1.2 の有効化を行う。
PowerShell で GitHub に wget(Invoke-WebRequest) できない場合の対処方法
④インストールスクリプトを実行する
全てデフォルトの設定でインストールする場合は以下のコマンドを実行する。
install.ps1 -AcceptAllDefaults
プロンプトを表示し対話式に設定を行いながらインストールする場合は,以下コマンドを実行すると公式ドキュメントには書いてある。
iex ((New-ObjectSystem.Net.WebClient).DownloadString('https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1'))
しかし,前段で同 URL からスクリプトをダウンロードしているので,おそらく
install.ps1
だけでよいかも。というか前者のコマンドを実行したらエラーが起きた1。
インストールの確認
インストール後は,oci -v
でバージョンが表示されることを確認しておく。
PS C:\Windows\System32> oci -v
2.17.0
APIキーの設定
秘密鍵/公開鍵の作成
OCI CLI を使って,キーペアを作成する。
キーペアの作成はoci setup keys
コマンドで行える。
PS C:\Windows\System32> oci setup keys
Enter a passphrase for your private key (empty for no passphrase):
Public key written to: C:\Users\【ユーザ名】\.oci\oci_api_key_public.pem
Private key written to: C:\Users\【ユーザ名】\.oci\oci_api_key.pem
Public key fingerprint: 【フィンガープリント】
If you haven't already uploaded your API Signing public key through the
console, follow the instructions on the page linked below in the section
'How to upload the public key':
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2
公開鍵の登録
前段で作成した公開鍵を OCI のユーザに登録する。
① OCIコンソールを開き,ユーザ画面へ移動する
OCIコンソール画面右上のプロファイルからユーザ詳細画面へ移動する。
②APIキー設定画面を開く
すると以下の画面が表示される。
スクリーンショットでは,キーを追加済みなのでフィンガープリントが表示されているが,設定していない場合はここにはなにも表示されない。
「APIキーの追加」をクリック。
「APIキーの追加」をクリックすると以下のダイアログが開く。
③APIキーを設定する
この画面でAPIキーペアを生成することもできるが,今回は先ほど作成したキーペアを使用するため,「公開キー・ファイルの選択」または「公開キーの貼付け」を選択する。
ここでは「公開キーの貼付け」を選択し,先ほど作成した公開キー(oci_api_key_public.pem
)の中身をテキストエリアに貼り付ける。
貼り付けたら「追加」をクリックする。
設定が完了したら,先ほどのAPIキー一覧テーブルにフィンガープリントとともに表示される。
OCI CLI設定ファイルを作成する
前段までで,秘密鍵/公開鍵の作成と登録を行った。
ここからはOCI CLIにこれらのキーペアを認識させるための手順となる。
①ユーザ OCID の確認
ユーザ OCID は,APIキーの設定で開いたユーザ詳細画面から確認できる。
「ユーザー情報」タブの「OCID」欄に表示されている。
「コピー」をクリックするとクリップボードにコピーされるので,控えておく。
②テナンシ OCID,ホームリージョンの確認
ユーザ詳細画面と同様,プロファイルからテナンシ詳細画面に移動する。
こちらもユーザ詳細画面と同様,「テナンシ情報」タブの「OCID」欄に表示されている。
「コピー」をクリックするとクリップボードにコピーされるので,控えておく。
また,テナンシのホームリージョンもあわせて確認しておく。
③oci setup config
で設定ファイルを作成する
①,②で確認した情報をもとに,oci setup config
コマンドで対話式に設定ファイルを作成する。
なお,リージョン名とリージョン識別子の対応は以下に記載されている。
リージョン名が Japan East(Tokyo)
の場合は,ap-tokyo-1
がリージョン識別子となる。
https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm
PS C:\Windows\System32> oci setup config
This command provides a walkthrough of creating a valid CLI config file.
The following links explain where to find the information required by this
script:
User API Signing Key, OCID and Tenancy OCID:
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#Other
Region:
https://docs.cloud.oracle.com/Content/General/Concepts/regions.htm
General config documentation:
https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm
Enter a location for your config [C:\Users\【ユーザ名】\.oci\config]:
Enter a user OCID: 【①で確認したユーザ OCID】
Enter a tenancy OCID: 【②で確認したテナンシ OCID】
Enter a region (e.g. ap-chiyoda-1, ap-chuncheon-1, ap-hyderabad-1, ap-melbourne-1, ap-mumbai-1, ap-osaka-1, ap-seoul-1, ap-sydney-1, ap-tokyo-1, ca-montreal-1, ca-toronto-1, eu-amsterdam-1, eu-frankfurt-1, eu-zurich-1, me-dubai-1, me-jeddah-1, sa-santiago-1, sa-saopaulo-1, uk-cardiff-1, uk-gov-cardiff-1, uk-gov-london-1, uk-london-1, us-ashburn-1, us-gov-ashburn-1, us-gov-chicago-1, us-gov-phoenix-1, us-langley-1, us-luke-1, us-phoenix-1, us-sanjose-1): 【②で確認したホームリージョンを指定しておく】
Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: n【すでに作成済みのため n を選ぶ】
Enter the location of your API Signing private key file: C:\Users\【ユーザ名】\.oci\oci_api_key.pem
Fingerprint: hogehoge
Config written to C:\Users\【ユーザ名】\.oci\config
If you haven't already uploaded your API Signing public key through the
console, follow the instructions on the page linked below in the section
'How to upload the public key':
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2
作成した設定ファイルはC:\Users\【ユーザ名】\.oci\config
に保存される。
APIが実行できることを確認する
なんらかのコマンドを実行して,APIが実行できることを確認する。
PS C:\Windows\System32> oci iam region list --output table
+-----+----------------+
| key | name |
+-----+----------------+
| AMS | eu-amsterdam-1 |
| BOM | ap-mumbai-1 |
| CWL | uk-cardiff-1 |
| DXB | me-dubai-1 |
| FRA | eu-frankfurt-1 |
| GRU | sa-saopaulo-1 |
| HYD | ap-hyderabad-1 |
| IAD | us-ashburn-1 |
| ICN | ap-seoul-1 |
| JED | me-jeddah-1 |
| KIX | ap-osaka-1 |
| LHR | uk-london-1 |
| MEL | ap-melbourne-1 |
| NRT | ap-tokyo-1 |
| PHX | us-phoenix-1 |
| SCL | sa-santiago-1 |
| SJC | us-sanjose-1 |
| SYD | ap-sydney-1 |
| YNY | ap-chuncheon-1 |
| YUL | ca-montreal-1 |
| YYZ | ca-toronto-1 |
| ZRH | eu-zurich-1 |
+-----+----------------+
なお,--output table
を指定しない場合は,JSON 形式でレスポンスが返ってくる。
Reference
- https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/cliconcepts.htm
- https://qiita.com/shirok/items/e63be9a22158fef10ba9
- https://qiita.com/sugimount/items/63a8cfe1163030ae8804
本記事におけるバージョン情報
PS C:\Windows\System32> systeminfo
OS 名: Microsoft Windows 10 Pro
OS バージョン: 10.0.19042 N/A ビルド 19042
PS C:\Windows\System32> $PSVersionTable
Name Value
---- -----
PSVersion 7.1.0
PSEdition Core
GitCommitId 7.1.0
OS Microsoft Windows 10.0.19042
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
PS C:\Windows\System32> oci --version
2.17.0