【お知らせ】
この記事の最新版は、個人ブログ「OCI Tech Journal」で公開しています。OCI CLI の最新バージョンの情報もありますので、ぜひそちらをご覧ください。
https://oci-tech.jp/oci-cli-examples/
初めに
OCI CLIは、オラクル・クラウド(OCI)のリソースをコマンドラインから操作するための強力なツールです。OCIコンソールで行えるほとんどの操作をCLIで実行できるため、開発者や自動化を好むユーザーにとって非常に便利です。特に、バッチスクリプトと組み合わせることで、繰り返し作業の効率化や複雑なタスクの自動化が可能になります。
この記事では、私が実際の作業でよく使うOCI CLIのコマンド例を厳選して紹介します。現場によく聞かれる質問を焦点に当てているため、すぐに実践で活用できます。詳細なオプションや設定方法については、マニュアルを参照してください。
本記事は、OCI-CLIの基本的な使い方から実践的な活用例まで、少しでも多くの方のお役に立てれば幸いです
サポートされているOS
- Microsoft Windows
- Linux (Oracle Linux, CentOS, Ubuntu)
- Mac OS
相当なサービス
| クラウド・プロバイダー | OCI | AWS | Azure | GCP |
|---|---|---|---|---|
| サービス名 | OCI CLI | AWS CLI | Azure CLI | Google Cloud CLI |
索引
- 1. CLIのインストールとセットアップ
- 2. テナンシ情報の取得
- 3. オブジェクト・ストレージにアクセス
- 4. インスタンスの起動・停止
- 5. 拡張リソース問合わせ機能の活用
- 6. サービス制限値の確認
- 7. IPアドレス関連
- 8. Base DB の接続文字列の取得
- 付録
1. CLIのインストールとセットアップ
OCI CLIのインストールと構成ファイルの作成については、クイックスタートをご参照ください。
以下は抜粋した内容です。Cloud Shellを使用する場合は、既にインストールと設定が完了しているため、そのままご利用いただけます。
CLIのインストール
- Oracle Linux 9の場合:
sudo dnf -y install oraclelinux-developer-release-el9
sudo dnf install python39-oci-cli
- Oracle Linux 8の場合:
sudo dnf -y install oraclelinux-developer-release-el8
sudo dnf install python36-oci-cli
- Oracle Linux 7の場合:
sudo yum install python36-oci-cli
- Windowsの場合(管理者として実行):
Set-ExecutionPolicy RemoteSigned
Invoke-WebRequest https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1 -OutFile install.ps1
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1'))
※、Windows 2012およびWindows 2016の場合は、PowerShellでTLS 1.2が使用されるよう強制します。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
- Macの場合:
brew update && brew install oci-cli
OCI CLI バージョンの確認
$ oci -v
3.33.1
構成ファイルの設定
コマンド:oci setup config
構成ファイルの場所(デフォルト):
Oracle Linux: /home/opc/.oci/config
Windows: C:\Users\<username>\.oci\config
構成ファイルの中身:
[DEFAULT]
user=ocid1.user.oc1..<unique_ID>
fingerprint=<your_fingerprint>
key_file=/home/opc/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..<unique_ID>
region=ap-tokyo-1
PEMファイルの権限を変更する
Oracle Linuxの場合:
oci setup repair-file-permissions --file /home/opc/.oci/oci_api_key.pem
Windowsの場合:
oci setup repair-file-permissions --file C:\Users\<username>\.oci\<PEM_File_Name>.pem
CLIのアップグレード
最新バージョンを使用することをお勧めします。
インストールスクリプトを使用してCLIをインストールした場合は、次の手順でCLIをアップグレードします。
- インストール・スクリプトを実行し、同じインストール・ディレクトリを指定します。
- 表示されたプロンプトに対して、既存のディレクトリを削除するかどうかを尋ねられたら、"Y"と回答します。
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
CLIを手動でインストールした場合は、次のコマンドを実行します。
pip install oci-cli --upgrade
pipの格納場所:
Windows: C:\Users\<username>\lib\oracle-cli\Scripts\
Linux: /home/opc/lib/oracle-cli/bin/pip
Homebrewを使用してMac OS XでCLIインストールをアップグレードするには:
brew update && brew upgrade oci-cli
CLIのアンインストール
- Oracle Linuxの場合:
- OL9:
sudo dnf remove python39-oci-cli - OL8:
sudo dnf remove python36-oci-cli - OL7:
sudo yum remove python36-oci-cli
- OL9:
- Windowsの場合:
- pipを使用してCLIを手動でインストールした場合:
pip uninstall oci-cli - インストール・スクリプトとデフォルトのインストール場所を使用した場合、次のものを削除する必要がある。
%USERPROFILE%/lib/oracle-cli(ディレクトリ)
%USERPROFILE%/bin/oci-cli-scripts(ディレクトリ)
%USERPROFILE%/bin/oci.exe
- pipを使用してCLIを手動でインストールした場合:
CLIのオフライン・インストール
インターネットにアクセスできない環境に OCI-CLI をインストールすることも可能です。OCI-CLIをインストールする前に、Pythonをインストールする必要があります。
詳細について、OCI-CLIオフライン・インストールの手順をご参照ください。
オフライン・インストールが可能ですが、オフライン・アップグレードができません。
2. テナンシ情報の取得
オブジェクト・ストレージ・ネームスペースの取得
私がよく使うコマンドです。OCIDは不要で、非常に使いやすいです。構成ファイルを設定した後、疎通確認として使用するのが便利です。
$ oci os ns get
{
"data": "<Your_Object_Storage_Namespace>"
}
テナンシ名の取得
コマンド:oci iam tenancy get --tenancy-id <Tenancy_OCID>
$ oci iam tenancy get --tenancy-id ocid1.tenancy.oc1..<unique_ID>
{
"data": {
"defined-tags": {},
"description": "<Your_Tenancy_Name>",
"freeform-tags": {},
"home-region-key": "NRT",
"id": "ocid1.tenancy.oc1..<unique_ID>",
"name": "<Your_Tenancy_Name>",
"upi-idcs-compatibility-layer-endpoint": null
}
}
※、テナントIDでテナント名の取得ができますが、テナント名でテナントIDの取得ができません。
ドメイン情報の取得
コマンド:oci iam availability-domain list
パラメータを指定しなくてもよい。
$ oci iam availability-domain list
{
"data": [
{
"compartment-id": "ocid1.tenancy.oc1..<unique_ID>",
"id": "ocid1.availabilitydomain.oc1..<unique_ID>",
"name": "xxxx:AP-TOKYO-1-AD-1"
}
]
}
リージョン一覧の取得
OCIのすべてのリージョンを取得
コマンド:oci iam region list (パラメータ--allを指定しなくてもよい)
$ oci iam region list
{
"data": [
<中略>
{
"key": "NRT",
"name": "ap-tokyo-1"
},
<中略>
{
"key": "KIX",
"name": "ap-osaka-1"
},
<中略>
]
}
※、このコマンドを使用することで、すべてのリージョン・キー(key)とリージョン識別子(name)を素早く確認できます。リージョン・キーと識別子の詳細について、ドキュメントを参照してください。
サブスクリプション済のリージョン一覧を取得
コマンド:oci iam region-subscription list
$ oci iam region-subscription list
{
"data": [
{
"is-home-region": false,
"region-key": "KIX",
"region-name": "ap-osaka-1",
"status": "READY"
},
{
"is-home-region": true,
"region-key": "NRT",
"region-name": "ap-tokyo-1",
"status": "READY"
}
]
}
※、is-home-regionをチェックすることで、ホーム・リージョンを取得できます。
3. オブジェクト・ストレージにアクセス
バケット情報の取得
- 一覧の取得 oci os bucket list -c <Compartment_OCID>
- 使用量の近似サイズの取得 oci os bucket get -bn <Bucket_name> --fields approximateSize
指定したバケットにオブジェクト一覧の取得
コマンド:oci os object list -bn <Bucket_Name>
例:oci os object list -bn MyBucket | grep name
ファイルごとのアップロード・ダウンロード・削除
-
アップロード
oci os object put -bn <bucket_name> --file <local_file_name> -
ダウンロード
oci os object get -bn <bucket_name> --file <local_file_name> --name <object_name> -
削除
`oci os object delete -bn <bucket_name> --name <object_name>
os object put|get|deleteを利用する時、1個のファイルしか指定できません。put --file file1 file2あるいはput --file file*のような書き方が正しくないです。
一括アップロード・ダウンロード・削除
-
アップロード (サブディレクトリを含む)
oci os object bulk-upload -bn <bucket_name> --src-dir <source_dir_name> -
ダウンロード (サブディレクトリを含む)
oci os object bulk-download -bn <bucket_name> --dest-dir <dest_dir_name>
※、ローカルに、このディレクトリが存在しない場合は自動に作成されます。 -
一括削除
oci os object bulk-delete -bn <bucket_name>
オプション引数:--force一括削除実行前に確認を求めない。
※、アップロード/ダウンロードの共通オプション引数:--overwrite
(同名のオブジェクトが存在する場合、上書きする)
ディレクトリの同期
コマンド:oci os object sync -bn <bucket_name> --src-dir <source_dir_name>
※、ローカルのディレクトリをバケット内のオブジェクトと同期します。サブディレクトリをトラバースして、新規および変更されたファイルまたはオブジェクトをソースから宛先にコピーし、必要に応じてソースに存在しないファイルやオブジェクトを削除します。
バケット単位の近似サイズ(使用量)の確認
コマンド:oci os bucket get -bn <Bucket_Name> --fields approximateSize
ほかのコマンド例
リンクから、詳細な内容をご確認いただけます。
-
4. インスタンスの起動・停止
- OCIインスタンスのライフサイクル状態を取得
- Computeインスタンスの起動・停止・終了
- Oracle Base DBの起動・停止
- Autonomous DBの起動・停止
- MySQL DB Serviceの起動・停止
- OACインスタンスの一時停止・再開
- データ統合ワークスペースの起動・停止
-
5. 拡張リソース問合わせ機能の活用
- コンパートメント内のすべてのリソースを検出
- DRG使用量の確認
-
6. サービス制限値の確認
- サポート対象のサービス名を確認
- VCNの使用可能値を確認
- OCPUの使用可能値を確認
-
7. IPアドレス関連
- IPアドレスの情報取得
- 予約済パブリックIPの割り当てと解除
-
8. Base DB の接続文字列の取得
- CDBの接続文字列
- PDBの接続文字列
付録
以下の内容の詳細については、こちらをご覧ください。
-
1. OCI-CLIに関するFAQ(詳細については、「OCI-CLIに関するFAQ」をご覧ください)
- OCI-CLIを利用するのにPythonは必須ですか?
- Oracle Base DBのインスタンスにもOCI-CLIを利用することができますか?
- 特定のユーザーにOCI-CLIを使用させたくない場合、それは可能ですか?
-
2. query引数の書き方
--query引数の書き方は、実行環境の種類により違いがあります。 -
3. 優先順位
コマンド・オプション > 環境変数 > OCI構成ファイル -
4. 警告メッセージの回避
エラー現象: OCI-CLIコマンドを実施する際、次の警告メッセージが出る。
WARNING: Permissions on <PEM_File>.pem are too open.
以上です。
関連記事
クラウド技術ブログ
OCIインスタンスの自動起動・停止
OCI-CLIオフライン・インストールの手順
OCI-CLIを使用してOCIインスタンスのライフサイクル状態を取得する方法
ドキュメント
コマンドライン・インタフェース(CLI) 英語 日本語
CLI環境変数 英語 日本語
Docs » setup » repair-file-permissions: 英語