コマンド・ライン・インタフェース(CLI)は、Oracle Cloud Infrastructureオブジェクトおよびサービスを操作できるツールです。
OCI CLIは、Webコンソールとほとんど同じ機能を提供し、追加の高度なコマンドが含まれています。
ということで、OCI CLIをインストールしてみてみます
■ 要件
コマンドライン・インタフェース(CLI): 要件を参考に事前設定します。
⚫︎ Pythonインストールとアップデート
CLIでは、MacOS、WindowsまたはサポートされているLinuxおよびUNIX系のオペレーティング・システムで実行されるPythonバージョン3.6以上をサポートしています。
新しいバージョンのPythonは、すぐにサポートされない場合があります。CLIは、記載されていないオペレーティング・システムで動作する可能性がありますが、互換性のテストは行っていません。
サポートされるPythonバージョンおよびオペレーティング・システムを参考に設定します。
● Pythonインストール確認
Pythonがインストールされているか確認
以下のようにVersion確認して3.6以降が表示されればOK
[opc@macbook~]$ python -V
Python 3.6.8
● Python Versionを変更する場合
1) 恒久的に Version変更したい場合
次を参考
2) CLIインストール時のみ Version変更したい場合
他に影響でないように aliasコマンドで、セッションのみ適用
[opc@macbook~]$ alias python='/usr/bin/python3'
[opc@macbook~]$ python -V
Python 3.6.8
■ OCI CLIのインストール
● 方法1. すばやくインストールする手順
OCIコマンドライン・インタフェース(CLI)をすばやくインストールして構成する方法が、OCIドキュメント: CLIのインストールに各オペレーティング・システム毎に手順があります。
ここでは、Oracle Linux 8 へインストールしてみてみます。
Oracle Linux 9 手順
Oracle Linux 8 以上を使用している場合は、dnfを使用してCLIをインストールできます。
sudo dnf -y install oraclelinux-developer-release-el9
sudo dnf install python39-oci-cli
[opc@vm-ol9 ~]$ sudo dnf -y install oraclelinux-developer-release-el9
Last metadata expiration check: 3:50:55 ago on Wed 11 Jun 2025 10:04:06 AM GMT.
Package oraclelinux-developer-release-el9-1.0-2.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[opc@vm-ol9 ~]$ sudo dnf install python39-oci-cli
Last metadata expiration check: 3:51:07 ago on Wed 11 Jun 2025 10:04:06 AM GMT.
Dependencies resolved.
=========================================================================================================================================
Package Architecture Version Repository Size
=========================================================================================================================================
Installing:
python39-oci-cli noarch 3.58.0-1.el9 ol9_oci_included 44 M
Upgrading:
python39-oci-sdk x86_64 2.154.0-1.el9 ol9_oci_included 86 M
Installing dependencies:
python3-arrow noarch 1.1.0-2.el9 ol9_oci_included 153 k
python3-importlib-metadata noarch 4.12.0-2.el9 ol9_oci_included 75 k
python3-jmespath noarch 0.10.0-4.el9 ol9_oci_included 78 k
python3-prompt-toolkit noarch 3.0.38-4.el9 ol9_oci_included 1.0 M
python3-terminaltables noarch 3.1.10-8.0.1.el9 ol9_oci_included 60 k
python3-wcwidth noarch 0.2.5-8.el9 ol9_appstream 65 k
python3-zipp noarch 0.5.1-1.el9 ol9_oci_included 24 k
Transaction Summary
=========================================================================================================================================
Install 8 Packages
Upgrade 1 Package
Total download size: 131 M
Is this ok [y/N]: y
Downloading Packages:
(1/9): python3-jmespath-0.10.0-4.el9.noarch.rpm 2.1 MB/s | 78 kB 00:00
(2/9): python3-arrow-1.1.0-2.el9.noarch.rpm 3.6 MB/s | 153 kB 00:00
(3/9): python3-prompt-toolkit-3.0.38-4.el9.noarch.rpm 44 MB/s | 1.0 MB 00:00
(4/9): python3-terminaltables-3.1.10-8.0.1.el9.noarch.rpm 2.8 MB/s | 60 kB 00:00
(5/9): python3-zipp-0.5.1-1.el9.noarch.rpm 3.6 MB/s | 24 kB 00:00
(6/9): python3-wcwidth-0.2.5-8.el9.noarch.rpm 9.7 MB/s | 65 kB 00:00
(7/9): python39-oci-cli-3.58.0-1.el9.noarch.rpm 82 MB/s | 44 MB 00:00
(8/9): python3-importlib-metadata-4.12.0-2.el9.noarch.rpm 125 kB/s | 75 kB 00:00
(9/9): python39-oci-sdk-2.154.0-1.el9.x86_64.rpm 63 MB/s | 86 MB 00:01
-----------------------------------------------------------------------------------------------------------------------------------------
Total 91 MB/s | 131 MB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : python39-oci-sdk-2.154.0-1.el9.x86_64 1/10
Installing : python3-wcwidth-0.2.5-8.el9.noarch 2/10
Installing : python3-prompt-toolkit-3.0.38-4.el9.noarch 3/10
Installing : python3-zipp-0.5.1-1.el9.noarch 4/10
Installing : python3-importlib-metadata-4.12.0-2.el9.noarch 5/10
Installing : python3-terminaltables-3.1.10-8.0.1.el9.noarch 6/10
Installing : python3-jmespath-0.10.0-4.el9.noarch 7/10
Installing : python3-arrow-1.1.0-2.el9.noarch 8/10
Installing : python39-oci-cli-3.58.0-1.el9.noarch 9/10
Cleanup : python39-oci-sdk-2.150.3-1.el9.x86_64 10/10
Running scriptlet: python39-oci-sdk-2.150.3-1.el9.x86_64 10/10
Verifying : python3-arrow-1.1.0-2.el9.noarch 1/10
Verifying : python3-importlib-metadata-4.12.0-2.el9.noarch 2/10
Verifying : python3-jmespath-0.10.0-4.el9.noarch 3/10
Verifying : python3-prompt-toolkit-3.0.38-4.el9.noarch 4/10
Verifying : python3-terminaltables-3.1.10-8.0.1.el9.noarch 5/10
Verifying : python3-zipp-0.5.1-1.el9.noarch 6/10
Verifying : python39-oci-cli-3.58.0-1.el9.noarch 7/10
Verifying : python3-wcwidth-0.2.5-8.el9.noarch 8/10
Verifying : python39-oci-sdk-2.154.0-1.el9.x86_64 9/10
Verifying : python39-oci-sdk-2.150.3-1.el9.x86_64 10/10
Upgraded:
python39-oci-sdk-2.154.0-1.el9.x86_64
Installed:
python3-arrow-1.1.0-2.el9.noarch python3-importlib-metadata-4.12.0-2.el9.noarch python3-jmespath-0.10.0-4.el9.noarch
python3-prompt-toolkit-3.0.38-4.el9.noarch python3-terminaltables-3.1.10-8.0.1.el9.noarch python3-wcwidth-0.2.5-8.el9.noarch
python3-zipp-0.5.1-1.el9.noarch python39-oci-cli-3.58.0-1.el9.noarch
Complete!
・ インストール確認
[opc@vm-ol9 ~]$ oci -v
3.58.0
● 方法2. CLIインストール(Python 仮想環境)
venv Pythonモジュールは、分離したPython環境を作成できる仮想環境ビルダーです。CLIを仮想環境にインストールすることをお薦めします。
1) 仮想環境の作成および構成
[opc@macbook~]$ python3 -m venv oracle-cli
[opc@macbook~]$ source oracle-cli/bin/activate
(oracle-cli) [opc@macbook~]$
2) コマンドライン・インタフェースのインストール
PIP を使用してインストール
(oracle-cli) [opc@macbook~]$ pip install oci-cli
Collecting oci-cli
Downloading oci_cli-3.24.0-py3-none-any.whl (36.7 MB)
|████████████████████████████████| 36.7 MB 434 kB/s
Collecting pytz>=2016.10
Using cached pytz-2022.7.1-py2.py3-none-any.whl (499 kB)
Collecting python-dateutil<3.0.0,>=2.5.3
Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting terminaltables==3.1.0
Downloading terminaltables-3.1.0.tar.gz (12 kB)
Collecting jmespath==0.10.0
Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
Collecting six>=1.15.0
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting cryptography<40.0.0,>=3.2.1
Downloading cryptography-39.0.2-cp36-abi3-macosx_10_12_universal2.whl (5.4 MB)
|████████████████████████████████| 5.4 MB 33.7 MB/s
Collecting pyOpenSSL<24.0.0,>=17.5.0
Downloading pyOpenSSL-23.0.0-py3-none-any.whl (57 kB)
|████████████████████████████████| 57 kB 22.5 MB/s
Collecting prompt-toolkit==3.0.29
Downloading prompt_toolkit-3.0.29-py3-none-any.whl (381 kB)
|████████████████████████████████| 381 kB 41.9 MB/s
Collecting click==8.0.4
Downloading click-8.0.4-py3-none-any.whl (97 kB)
|████████████████████████████████| 97 kB 21.4 MB/s
Collecting certifi
Downloading certifi-2022.12.7-py3-none-any.whl (155 kB)
|████████████████████████████████| 155 kB 23.5 MB/s
Collecting arrow>=1.0.0
Downloading arrow-1.2.3-py3-none-any.whl (66 kB)
|████████████████████████████████| 66 kB 25.4 MB/s
Collecting PyYAML<6,>=5.4
Downloading PyYAML-5.4.1.tar.gz (175 kB)
|████████████████████████████████| 175 kB 30.7 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting oci==2.96.0
Downloading oci-2.96.0-py3-none-any.whl (20.0 MB)
|████████████████████████████████| 20.0 MB 5.1 MB/s
Collecting circuitbreaker<2.0.0,>=1.3.1
Downloading circuitbreaker-1.4.0.tar.gz (9.7 kB)
Collecting wcwidth
Downloading wcwidth-0.2.6-py2.py3-none-any.whl (29 kB)
Collecting cffi>=1.12
Downloading cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl (174 kB)
|████████████████████████████████| 174 kB 27.5 MB/s
Collecting pycparser
Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)
|████████████████████████████████| 118 kB 56.1 MB/s
Using legacy 'setup.py install' for terminaltables, since package 'wheel' is not installed.
Using legacy 'setup.py install' for circuitbreaker, since package 'wheel' is not installed.
Building wheels for collected packages: PyYAML
Building wheel for PyYAML (PEP 517) ... done
Created wheel for PyYAML: filename=PyYAML-5.4.1-cp39-cp39-macosx_10_9_universal2.whl size=45664 sha256=af9cfae14dc3aab7d69da366dd78320458a61eaa026c5e31b3c2c9980bd67dfc
Stored in directory: /Users/opc/Library/Caches/pip/wheels/b7/a5/c4/504d913c2a55bb09c607541578ec5f844d1ff33467abe93ba5
Successfully built PyYAML
Installing collected packages: pycparser, cffi, six, cryptography, wcwidth, pytz, python-dateutil, pyOpenSSL, circuitbreaker, certifi, terminaltables, PyYAML, prompt-toolkit, oci, jmespath, click, arrow, oci-cli
Running setup.py install for circuitbreaker ... done
Running setup.py install for terminaltables ... done
Successfully installed PyYAML-5.4.1 arrow-1.2.3 certifi-2022.12.7 cffi-1.15.1 circuitbreaker-1.4.0 click-8.0.4 cryptography-39.0.2 jmespath-0.10.0 oci-2.96.0 oci-cli-3.24.0 prompt-toolkit-3.0.29 pyOpenSSL-23.0.0 pycparser-2.21 python-dateutil-2.8.2 pytz-2022.7.1 six-1.16.0 terminaltables-3.1.0 wcwidth-0.2.6
WARNING: You are using pip version 21.2.4; however, version 23.0.1 is available.
You should consider upgrading via the '/Users/opc/oracle-cli/bin/python3 -m pip install --upgrade pip' command.
3) CLIインストール確認
[opc@macbook ~]$ source oracle-cli/bin/activate
(oracle-cli) [opc@macbook ~]$ oci -v
3.24.0
● 方法3. CLIインストール (GitHubから Download)
1) CLIインストーラ実行
Bashを使用して任意のComputerにCLIをインストール
ここではOCI Compute Instanceにインストールするのでopcユーザーでインストール
Macも同じ手順です。
[opc@macbook ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6225 100 6225 0 0 40805 0 --:--:-- --:--:-- --:--:-- 40953
Downloading Oracle Cloud Infrastructure CLI install script from https://raw.githubusercontent.com/oracle/oci-cli/5657b833bfcf16298d43fb6f0204cd66173c5ac0/scripts/install/install.py to /tmp/oci_cli_install_tmp_WAle.
######################################################################## 100.0%
Python3 not found on system PATH
Running install script.
-- Verifying Python version.
-- Python version 2.7.5 okay.
・・・
--
-- ** Run `exec -l $SHELL` to restart your shell. **
--
-- Installation successful.
-- Run the CLI with /home/opc/bin/oci --help
2) SHELL再読み込み
インストール直後は変数が反映されていないため再読み込み
[opc@macbook ~]$ exec -l $SHELL
3) CLIインストール確認
[opc@macbook ~]$ oci -v
3.1.2
■ CLI 構成ファイルの設定
CLIを使用する前に、Oracle Cloud Infrastructureの操作に必要な資格証明を含む構成ファイルを作成する必要があります。このファイルは、設定ダイアログを使用して作成することも、テキスト・エディタを使用して手動で作成することもできます。
● 設定情報確認
CLIを稼働させる OCIのAPIユーザー、Tenancy、Compartments情報を取得しておきます
・OCI APIユーザー情報
USer名:test
User OCID:ocid1.user.oc1..aaaaareeqodirtky5rkowworkv80ldx7ecysatmdgty67ekzpotest
・Tenancy 情報
Tenancy名:test00014419
Tenancy OCID: ocid1.tenancy.oc1..aaaaaaaa56d4ubxlkxatwvzxzjsdieknkesktx4h2epjtsbtmspamjykcljfq
・Compartments情報
Compartment名:test_compartment
Compartment OCID: ocid1.compartment.oc1..aaaaaa4ax6ieicvoyfoxo632fsbw4zsieiffrdgto2bg4dciubirdfslmybkpelt
● 設定実行
1) oci setup config 実行
このコマンドを使用すると、構成ファイルの作成に必要な情報とAPI公開キーおよび秘密キーの入力が求められます。設定ダイアログでは、この情報を使用してAPIキー・ペアが生成され、構成ファイルが作成されます。APIキーが作成されたら、コンソールを使用して公開キーをアップロードします。
[opc@macbook ~]$ 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 OCID and Tenancy OCID:
https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm#Other
Region:
https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm
General config documentation:
https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/sdkconfig.htm
Enter a location for your config [/home/opc/.oci/config]:
Enter a user OCID: ★OCI APIユーザーを記入
Enter a tenancy OCID: ★tenancyを記入
Enter a region (e.g. eu-frankfurt-1, uk-london-1, us-ashburn-1, us-phoenix-1): ★CLIを実行するRigionを記入
Do you want to generate a new RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: ★Yを記入
Enter a directory for your keys to be created [/home/opc/.oci]:★デフォルトでOK
Enter a name for your key [oci_api_key]:★デフォルトでOK
Public key written to: /home/opc/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase):★必要に応じてパスワードを記入
Private key written to: /home/opc/.oci/oci_api_key.pem
Fingerprint: 50:d4:3f:ba:31:91:4c:a3:a7:7c:4b:4d:e5:7c:a5:80
Config written to /home/opc/.oci/config
If you haven't already uploaded your public key through the console,
follow the instructions on the page linked below in the section 'How to
upload the public key':
2) 作成ファイル確認
[opc@macbook ~]$ ls -l ~/.oci
total 16
-rw-------. 1 opc opc 298 Apr 21 23:47 config
-rw-------. 1 opc opc 1704 Apr 21 23:45 oci_api_key.pem
-rw-------. 1 opc opc 451 Apr 21 23:45 oci_api_key_public.pem
3) oci_api_key.pem ファイル設定
APIキーのセキュリティを強化するために、秘密キーの最後にOCI_API_KEYを含む行を追加することをお薦めします。自分または組織内のユーザーが誤って公開GitHubリポジトリに秘密キーをコミットした場合、OCIによって修正アクションの実行が通知されます。ラベル付きの PEM形式の非公開鍵は次のようになります。
[opc@macbook ~]$ cat ~/.oci/oci_api_key.pem
-----BEGIN PRIVATE KEY-----
MIIBIjANBgkqhkiG9w0BAQE...
...
-----END PRIVATE KEY-----
OCI_API_KEY
この設定をしない場合、OCI CLI実行時に次のようなメッセージが出力されます。
[opc@macbook ~]$ oci os object list -bn bucket
Warning: To increase security of your API key located at /home/opc/.oci/oci_api_key.pem, append an extra line with 'OCI_API_KEY' at the end. For more information, refer to https://docs.oracle.com/iaas/Content/API/Concepts/apisigningkey.htm. To suppress the warning, set the env variable SUPPRESS_LABEL_WARNING=True
・・・
■ CLI鍵をOCIユーザーに登録
CLIは鍵認証でアクセスされるので作成されたPublic Kye をOCI ユーザーに登録してCLIアクセスできるようにします
1) Public鍵(oci_api_key_public.pem)確認
※OCI CLI の Versionにより、ファイル名が異なる場合があります
[opc@macbook ~]$ cat ~/.oci/*_public.pem
-----BEGIN PUBLIC KEY-----
TESTIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+dleSpqDm0VOUmPHLi1c
zc7LQ9BAztnAZtTHvIponI14/HIHo9AlFJHu7hkKkgvGRtVVJwh8p/8fKc4eC0L
7ozZhsfN+O7/vqd62MboDlBuYcQ0KFyzaho2j7D5jUw9EBDBDcNF2mrVEFAEjXJZ
hwNw5kVHdGDZjipt879JUTF/ItYGB7cAko6heYM19odQ2clP4CIGt3a6ypUloYOt
vSPqZZjeSZgX1y2xQ+pE/nE5NUGOoq+BS5eUL+hdGXUSKNqP74qULn82Sk5cwujB
prkphOrxG6EyFgnvABAKbfGqzBGjEbdxfyIqxyQtTGffGUWxuCFAnm5JftxiiEv+
xQIDTEST
-----END PUBLIC KEY-----
2) Public鍵をOCIユーザーに登録
上記oci_api_key_public.pemの内容をOCIユーザーの API Keyに登録
・登録するユーザー画面へ遷移
WEBコンソール右上の人型アイコンからログインしているユーザー画面に遷移することができます
・左ペインにある[APIキーの追加]をクリックしPublic鍵(oci_api_key_public.pem)を登録
■ Profileの確認と設定
oci setup configコマンドでProfile情報が設定された~/.oci/config ファイルが作成されます。
初期値は、[DEFAULT]プロファイルになるので、追加で別のリージョンも追加したい場合次のように[TOKYO]項を追記します
ociコマンドに --profile=TOKYO を追加することで、TOKYOプロファイルが使用されます
[opc@macbook ~]$ cat ~/.oci/config
[DEFAULT]
user=ocid1.user.oc1..aaaaareeqodirtky5rkowworkv80ldx7ecysatmdgty67ekzpotest
fingerprint=12:89:ab:8f:f4:25:f6:99:dd
key_file=/Users/opc/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaa56d4ubxlkxatwvzxzjsdieknkesktx4h2epjtsbtmspamjykcljfq
region=us-phoenix-1
[TOKYO]
user=ocid1.user.oc1..aaaaaaaafybxlpzvkhsknfuw5qhvqxzqgpn3xnljxwahgjfdpvizgtcj4cra
fingerprint=12:89:ab:8f:f4:25:f6:99:dd
key_file=/Users/opc/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaa3mb7wrcy2ls3u3jsy2soq5ck3lc3q4mczitpdaymbuazc5tkguca
region=ap-tokyo-1
■ CLIデフォルト値の設定
oci-cli-rcを作成して設定しておくことで、コマンド・ラインに入力する必要を無くすことができます。
● oci-cli-rc作成
[opc@macbook ~]$ oci setup oci-cli-rc
Predefined queries written under section OCI_CLI_CANNED_QUERIES
Command aliases written under section OCI_CLI_COMMAND_ALIASES
Parameter aliases written under section OCI_CLI_PARAM_ALIASES
[opc@macbook ~]$ ls ~/.oci
config oci_api_key.pem oci_api_key_public.pem oci_cli_rc
● oci_cli_rcファイルへデフォルト値追加
ここでは、上記作成した[DEFAULT]と[TOKYO]プロファイルのデフォルトコンパートメント値(test_compartmentのOCID)を最下部に設定します。
使用したプロファイルに応じて設定した値が使用されます
[opc@macbook ~]$ cat ~/.oci/oci_cli_rc
[OCI_CLI_CANNED_QUERIES]
# For list results, this gets the ID and display-name of each item in the list. Note that when the names of attirbutes have
# dashes in them they need to be surrounded with double quotes. This query knows to look for a list because of the
# [*] syntax
get_id_and_display_name_from_list=data[*].{id: id, "display-name": "display-name"}
・・・
[DEFAULT]
compartment-id = ocid1.compartment.oc1..aaaaaaaahszzd8asdjoregbssrhdh
[TOKYO]
compartment-id = ocid1.compartment.oc1..aaaaaaaahszzd8asdjoregbssrhdh
■ CLI実行テスト
デフォルトでは、コマンドに対するすべてのレスポンスはJSON形式で返されます。
たとえば、リージョンのリストを取得するコマンドを発行すると、次のレスポンスが戻されます。
[opc@macbook ~]$ oci iam region list
{
"data": [
{
"key": "BOM",
"name": "ap-mumbai-1"
},
{
"key": "FRA",
"name": "eu-frankfurt-1"
},
{
"key": "GRU",
"name": "sa-saopaulo-1"
},
{
"key": "IAD",
"name": "us-ashburn-1"
},
{
"key": "ICN",
"name": "ap-seoul-1"
},
{
"key": "LHR",
"name": "uk-london-1"
},
{
"key": "NRT",
"name": "ap-tokyo-1"
},
{
"key": "PHX",
"name": "us-phoenix-1"
},
{
"key": "SYD",
"name": "ap-sydney-1"
},
{
"key": "YYZ",
"name": "ca-toronto-1"
},
{
"key": "ZRH",
"name": "eu-zurich-1"
}
]
}
場合によっては、可読性が問題になることがあります。
これは、レスポンスを表としてフォーマットすることで簡単に解決できます。
表形式のコマンドにレスポンスするには、次のコマンドを実行します。
次のリージョンのリストは、2つの列の表として戻されます。
[opc@macbook ~]$ oci iam region list --output table
+-----+----------------+
| key | name |
+-----+----------------+
| BOM | ap-mumbai-1 |
| FRA | eu-frankfurt-1 |
| GRU | sa-saopaulo-1 |
| IAD | us-ashburn-1 |
| ICN | ap-seoul-1 |
| LHR | uk-london-1 |
| NRT | ap-tokyo-1 |
| PHX | us-phoenix-1 |
| SYD | ap-sydney-1 |
| YYZ | ca-toronto-1 |
| ZRH | eu-zurich-1 |
+-----+----------------+
■ CLIでVCNを作成/削除してみる
● CLIでVCN作成
[opc@macbook ~]$ oci network vcn create --cidr-block 10.0.0.0/16 --display-name test-vcn --dns-label TEST
{
"data": {
"cidr-block": "10.0.0.0/16",
"compartment-id": "ocid1.compartment.oc1..aaaaaa",
"default-dhcp-options-id": "ocid1.dhcpoptions.oc1.eu-frankfurt-1.aaaaaaaarjqrkqceq",
"default-route-table-id": "ocid1.routetable.oc1.eu-frankfurt-1.aaaaaaaam6yjams",
"default-security-list-id": "ocid1.securitylist.oc1.eu-frankfurt-1.aaaaaaaa4j3nq",
"defined-tags": {},
"display-name": "test-vcn",
"dns-label": "test",
"freeform-tags": {},
"id": "ocid1.vcn.oc1.eu-frankfurt-1.aaaaaaaabkjob",
"lifecycle-state": "AVAILABLE",
"time-created": "2018-07-25T04:19:54.429000+00:00",
"vcn-domain-name": "test.oraclevcn.com"
},
"etag": "dc5eacac"
}
● CLIでVCN削除
[opc@macbook ~]$ oci network vcn delete --vcn-id ocid1.vcn.oc1.uk-london-1.aaaaaaaabkjob
Are you sure you want to delete this resource? [y/N]: y
● エラーが出力された場合
OCIユーザーに権限がないと以下エラーが出力されます
Administrators等のAPIアクセスできるGroupを追加しましょう
[opc@macbook ~]$ oci network vcn create --cidr-block 11.0.0.0/16 --display-name test-vcn --dns-label TEST
ServiceError:
{
"code": "NotAuthorizedOrNotFound",
"message": "Authorization failed or requested resource not found.",
"opc-request-id": "IDFD66B3D9B3CA403F8C8D5DE4E0519DFD/83A5F33821FF6C82FA0A1C47AB5AE160ID",
"status": 404
}
■ CLIでルート表を追加/更新してみる
● ルート表作成
oci network route-table create --display-name "RT-Public-Subnet01" --compartment-id "<コンパートメントOCID>" --route-rules '[{"cidrBlock":"0.0.0.0/0","networkEntityId":"<Internet GatewayのOCID>"}]' --vcn-id "<VCNのOCID>"
● ルート・ルール更新
ルート・ルールを追加できないので、全部上書き更新するようにupdate文を実行
oci network route-table update --rt-id "<ルート表のOCID>" --route-rules '[{"cidrBlock":"0.0.0.0/0","networkEntityId":"<Internet GatewayのOCID>"},{"cidrBlock":"192.168.0.0/6","networkEntityId":"<DRGのOCID>"},{"cidrBlock":"10.0.0.0/16","networkEntityId":"<DRGのOCID>"}]'
■ CLIでセキュリティ・リストを追加・更新してみる
・Security-list Reference
・IngressSecurityRule Reference
・EgressSecurityRule Reference
・IcmpOptions Reference
● セキュリティ・リスト作成
oci network security-list create --display-name "<表示名>" --compartment-id "<コンパートメント OCID>" --vcn-id "<VCN OCID>"
● セキュリティ・ルール更新追加
プロトコル番号は、ICMP ("1"), TCP ("6"), UDP ("17"), and ICMPv6 ("58")
・Ingress Roure
oci network security-list update --security-list-id "<セキュリティ・リストOCID>" --ingress-security-rules '[
{"source": "0.0.0.0/0", "protocol": "6", "isStateless": false, "tcpOptions": {"sourcePortRange":null, "destinationPortRange": {"max": 22, "min": 22}}},
{"source": "0.0.0.0/0", "protocol": "1", "isStateless": false, "icmpOptions": {"type":3,"code":4}},
{"source": "10.0.0.0/16", "protocol": "1", "isStateless": false, "icmpOptions": {"type":3,"code":null}},
{"source": "10.0.0.0/16", "protocol": "6", "isStateless": false, "tcpOptions": {"sourcePortRange":null, "destinationPortRange":null}}
]'
・Egress Roure
oci network security-list update --security-list-id "<セキュリティ・リストOCID>" --ingress-security-rules '[
{"destination": "0.0.0.0/0", "protocol": "6", "isStateless": false, "tcpOptions": {"destinationPortRange": null, "sourcePortRange": null}}
]'
■ CLIでCompute Instanceを起動/停止してみる
Compute InstanceをCLIで起動停止するにはocidが必要になりますが、
ocidは判別しにくいため、作成したインスタンス名(name)指定でできるようにしてみます。
方法は、cliの--queryオプションを使用して作成したインスタンス名(name)からocidを出力してshell変数に入れてやります
● インスタンス名(name)からocidを取得するcli
1) ociコマンドでインスタンス(test-inst01)のocid出力コマンド作成
[opc@macbook ~]$ oci compute instance list --query 'data[?"display-name"==`test-inst01`]."id"|[0]' --raw-output --region us-phoenix-1
==> ocid1.instance.oc1.phx.abcyhqjciwurbr6vbeignbpmyn7t3uwokhpep67fetest
2) インスタンス名(test-inst01)を指定した起動停止スクリプト作成
1) のコマンドをshell変数に入れて、CLIでInstanceをStart/Stop
・変数設定確認
[opc@macbook ~]$ id=$(oci compute instance list --query 'data[?"display-name"==`test-inst01`]."id"|[0]' --raw-output --region us-phoenix-1)
[opc@macbook ~]$ echo $id
==> ocid1.instance.oc1.phx.abcyhqjciwurbr6vbeignbpmyn7t3uwokhpep67fetest
・CLIでInstanceをStopさせてStatus確認
[opc@macbook ~]$ oci compute instance action --instance-id $id --action start
[opc@macbook ~]$ oci compute instance get --instance-id $id --query 'data."lifecycle-state"' --raw-output --region us-phoenix-1
STOPPED
・CLIでInstanceをStartさせてStatus確認
[opc@macbook ~]$ oci compute instance action --instance-id $id --action start
[opc@macbook ~]$ oci compute instance get --instance-id $id --query 'data."lifecycle-state"' --raw-output --region us-phoenix-1
RUNNING
■ OCI CLI コマンドリファレンス
・Oracle Cloud Infrastructure CLI Command Reference
■ 参考
・ コマンドライン・インタフェース(CLI)
・ CLIのインストール
・ OCI CLI 手動およびオフライン・インストール
・ 必要なキーとOCID