Oracle Cloud Infrastructureコマンドライン・インタフェースを使用したOracle Exadata Database Service on Cloud@Customerの管理
はじめに
Oracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)は、Oracle Exadata Database Service on Cloud@Customerリソースなど、OCIでリソースを管理するための優れたツールです。OCI CLIを使用すると、OCI操作を簡単かつ効率的に調整および自動化できます。OCI CLIはOCI REST APIを呼び出すため、構文が異なる場合でも、OCI CLIとOCI REST APIに互換性があることを意味します。トライアルとエラーのためにOCI REST API自動化の開発中にOCI CLIを使用し、より少ない労力で自動化をデプロイできます。
これは2つのパート・シリーズで、この最初の部分ではOCI CLIの基本を紹介し、2番目の部分ではOracle Exadata Database Service on Cloud@Customer固有のコマンドおよびワークフローに重点を置いています。
ノート:リモート・プラグインで動的スケーリングを使用する場合は、OCI CLIも必要ですが、動的スケーリング自体についてはこのチュートリアルでは説明しません。
目的
-
OCI CLIをインストールします。
-
出力フォーマットを使用して、必要に応じてコマンド出力をフィルタおよびフォーマットします。
-
OCI CLIの使用を簡素化するには、入力支援を使用します。
前提条件
-
Oracle Exadata Database Service on Cloud@Customerインフラストラクチャを使用してOCIテナンシにアクセスします。
-
テナンシで作成されたユーザー。必要な権限を付与するポリシーがあるグループ。
-
OCIテナンシにアクセスできる、サポートされているオペレーティング・システム(OS)にインストールされている、サポートされているPython環境のバージョン。詳細は、サポートされているPythonバージョンおよびオペレーティング・システムを参照してください。
-
APIリクエストの署名に使用されるキー・ペア(公開キーがOracleにアップロードされている)。
タスク1: OCI CLIのインストール
OCI CLIは、Python用のOCIソフトウェア開発キット(SDK)上に構築され、Mac、WindowsまたはLinux上で実行されます。Pythonコードは、Oracle Exadata Database Service on Cloud@CustomerやOracle Autonomous Database on Exadata Cloud@Customerなど、様々なサービスに実装された機能を提供するためにOCI APIを呼び出します。
-
ご使用のOSのOCI CLIは、OCI CLI GitHubリポジトリからダウンロードします。
-
オペレーティング・システムに従ってインストール手順に従います。
-
次のコマンドを実行して、インストールを確認します。
$ oci --version
-
OCIの操作に必要な資格証明を含む設定ダイアログを使用して、構成を設定します。
$ oci setup config
-
構成ファイルを検証します。
たとえば:
[DEFAULT] user=ocid1.user.oc1..<unique_ID> fingerprint=<your_fingerprint> key_file=~/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..<unique_ID> # Some comment region=us-ashburn-1
-
次のコマンドを実行して接続を確認します。これにより、テナンシのネームスペースが表示されます。
$ oci os ns get
-
次のコマンドを実行して、使用可能なコンパートメントをリストします。
$ oci iam compartment list
これにより、次のJSONレスポンスが生成されます:
{ "data": [ { "compartment-id": "ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq", "defined-tags": { "Oracle-Tags": { "CreatedBy": "default/some-email@oracle.com", "CreatedOn": "2023-11-10T13:27:32.885Z" } }, "description": "Compartment for Exadata Infrastructure", "freeform-tags": {}, "id": "ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q", "inactive-status": null, "is-accessible": null, "lifecycle-state": "ACTIVE", "name": "ExaInfra", "time-created": "2023-11-10T13:27:32.945000+00:00" } ] }
ノート:最初のコンパートメントのみを表示するように出力が切り捨てられていることに注意してください。
-
次のコマンドを実行して、コンパートメント内のすべての作業リクエストをリストします。
$ oci work-requests work-request list --compartment-id ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdh7q
出力フォーマットを使用して、必要に応じてコマンド出力をフィルタおよびフォーマットします。
前の例で確認したように、OCI CLIコマンドからのJSONレスポンスは、広範で、実行が難しく、読みにくい場合があります。
たとえば、Linuxのコマンド・プロンプトでは、出力をgrepなどの電源ツールにパイプしてレスポンスをフィルタできます。
次のコマンドを使用して、特定のコンパートメント内のすべてのVMクラスタおよびid
のフィルタリングをリストします。
$ oci db vm-cluster list --compartment-id <OCID> | grep \"id\"
これにより、次のレスポンスが生成されます。
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq"
"id":"ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra"
ただし、OCI CLIには、--query
パラメータを使用した問合せ機能が組み込まれており、問合せ対象フィールドを指定できます。
-
--query
パラメータを指定して次のコマンドを実行します。$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"id\"]"
JSONレスポンスは次のようになります:
[ [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
--query
の後ろに追加フィールドを簡単に指定して、より複雑な問合せを作成できます。$ oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]"
JSONレスポンスは次のようになります:
[ [ "fraexaclu1-uvlkz", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq" ], [ "fraexaclu2-2uyfk", "ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra" ] ]
-
--output
表パラメータを使用すると、よりわかりやすい出力を取得できます。$oci db vm-cluster list --compartment-id <OCID> --query "data[].[\"hostname\" , \"id\"]" --output table
次のレスポンスが返されます。
+----------------------------------------------------------------------------------------------------------------------+ | Column1 | Column2 | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
-
--query
パラメータを使用して、列の見出しを指定することもできます。$ oci db vm-cluster list --compartment-id <OCID> --query "data[].{\"Hostname\" : \"hostname\" , \"OCID\" : \"id\" }" --output table
次のレスポンスが返されます。
+----------------------------------------------------------------------------------------------------------------------+ | Hostname | OCID | +----------------------------------------------------------------------------------------------------------------------+ | fraexaclu1-uvlkz | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | | fraexaclu2-2uyfk | ocid1.vmcluster.oc1.eu-frankfurt-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz5ra | +------------------+---------------------------------------------------------------------------------------------------+
ノート:
--query
パラメータで使用される構文とJSONレスポンスの相関関係を理解することが重要です。list
のようなOCI CLIサブコマンドは通常、多くの結果を返しますが、get
のようなOCI CLIサブコマンドは1つの結果のみを返します。-
JSONレスポンスでは、データが
[
で指定されたリストまたは配列であることが示されます。[opc@jens-oci-1 ~]$ oci db vm-cluster list { "data": [ {
次に、問合せ構文は次のようになります。
--query "data[].[ field1 , field2 ]"
-
JSONレスポンスでは、データが単一オブジェクトであることが示されます。
[opc@jens-oci-1 ~]$ oci db vm-cluster get { "data": {
次に、
get
コマンドの構文は次のようになります。--query "data.[ field1 , field2 ]"
-
入力支援を使用したOCI CLIの使用の簡素化
アドホック・ユース・ケースと自動ユース・ケースの両方で、OCI CLIで入力支援を受けるには様々な方法があります。
-
環境変数を使用する場合:
環境変数を使用して、OCI CLIに渡すパラメータの値を格納できます。
たとえば、テナンシOCIDに
$T
を使用し、コンパートメントOCIDに$C
を使用できます。T=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq C=ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a
これは、次のようなOCI CLIコマンドで使用できます:
$ oci work-requests work-request list --compartment-id $C
-
--help
の使用:--help
を使用して、コマンドに関する追加情報を取得できます。これは、OCI CLIコマンド構造のすべてのレベルで適用されます。たとえば:
oci --help oci db --help oci db vm-cluster --help oci db vm-cluster list --help
次に、
oci db vm-cluster --help
コマンドのレスポンスの例を示します。Usage: oci db vm-cluster [OPTIONS] COMMAND [ARGS]... Details of the cloud VM cluster. Applies to Exadata Cloud Service instances only. Options: -?, -h, --help For detailed help on any of these individual commands, enter <command> --help. Commands: add Add Virtual Machines to the Cloud... change-vm-cluster-subscription Associate a cloud VM cluster with... change-compartment Moves a cloud VM cluster and its... create Creates a cloud VM cluster. delete Deletes the specified cloud VM... get Gets information about the... get-exadata-iorm-config Gets the IORM configuration for... get-update Gets information about a... get-update-history Gets the maintenance update... list Gets a list of the cloud VM... list-update-histories Gets the history of the... list-updates Lists the maintenance updates... remove Remove Virtual Machines from the... update Updates the specified cloud VM... update-exadata-iorm-config Updates the IORM settings for the...
-
メイン構成ファイルでのプロファイルの使用:
設定ダイアログを使用してOCI CLIを設定すると、メイン構成ファイルが作成され、出力にパスがリストされます。LinuxおよびUnixでは、メイン構成ファイルは
/home/opc/.oci/config
にあります。メイン構成ファイルの例:
[opc@jens-oci-1 ~]$ cat .oci/config [DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1
前述の例では、ユーザー、テナンシおよびリージョンが定義されたデフォルト・プロファイルが作成されています。パラメータを指定せずにコマンド行を使用する場合、プロファイルからデフォルト値が使用されます。プロファイル・ファイルに定義されている値以外の結果を表示する場合は、コマンドラインで値を明示的に指定できます。
また、メイン構成ファイルで複数のプロファイルを作成することもできます。
[DEFAULT] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-frankfurt-1 [AMS] user=ocid1.user.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3dpa fingerprint=5f:12:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:8c:e4 key_file=/home/opc/.oci/oci_api_key.pem tenancy=ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5xlq region=eu-amsterdam-1
次のコマンドを使用して、定義済みのプロファイルを参照できます。
oci db vm-cluster list --compartment-id $C --profile AMS --query "data[].[\"display-name\"]" --output table
-
ランタイム構成ファイルの使用:
異なるリージョン、コンパートメント、VMクラスタなどをより簡単に選択できるようにするには、この情報を含むプロファイルを2つ目のオプションの実行時構成ファイルで指定します。ランタイム構成ファイルは、メイン構成ファイルを補完しています。コマンドライン・パラメータのデフォルト値は、ランタイム構成ファイルで指定できます。
次のコマンドを使用して、ランタイム構成ファイルを作成できます。
$ oci setup oci-cli-rc --file .oci/oci_cli_rc
メイン構成ファイル内のプロファイルを補完し、ランタイム構成ファイルの最後にプロファイルの詳細を追加できます。
[DEFAULT] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a [AMS] compartment-id = ocid1.compartment.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7m7a vm-cluster-id = ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq
これらの定義済みプロファイルは、コマンドの実行時に次のコマンドで指定できます。
$ oci db vm-cluster get --profile AMS --query "data.{\"OCID\" : \"id\" , \"Core Count\" : \"cpu-core-count\" }" --output table +------------+------------------------------------------------------------------------------------------------------+ | Core Count | OCID | +------------+------------------------------------------------------------------------------------------------------+ | 0 | ocid1.vmcluster.oc1.eu-amsterdam-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2tkq | +------------+------------------------------------------------------------------------------------------------------+
-
フル・コマンドJSON入力ファイルの生成:
完全なコマンドJSON入力ファイルは、コマンドのすべてのパラメータを指定するために
--from-json file://<json file name>
パラメータとともに使用されます。これを実現するには、--generate-full-command-json-input
というパラメータがあり、このパラメータによって、そのコマンドのすべてのパラメータを含むJSONファイルが作成されます。次のコマンドを使用して、ファイル名が
vm-cluster_update.json
のJSONファイルを生成します。oci db vm-cluster update --generate-full-command-json-input > vm-cluster_update.json
このJSON入力ファイルを編集して、実行するコマンドに関連するパラメータのみを保持できます。この例では、VMクラスタのOCPU数を0 (ゼロ)にスケーリングします。そのためには、VMクラスタIDと新しい量のOCPU (4 OCPUにスケーリング)が必要です。
{ "vmclusterId": "ocid1.vmcluster.oc1.eu-frankfurt-1.antheljrvwun52iawxlyg2hp6lr3xawbvub7kcjje7yta45yluiz6xxl2tkq", "cpuCoreCount": 4 }
JSON入力ファイルを使用するには、次のコマンドを使用します。
oci db vm-cluster update --from-json file://vm-cluster_update.json
関連リンク
確認
- 著者 - Jens Ejvinsson (Exadata Cloud@Customerブラック・ベルト)、Zsolt Szokol (Exadata Cloud@Customerブラック・ベルト)
その他の学習リソース
docs.oracle.com/learnで他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Use Oracle Cloud Infrastructure Command Line Interface to manage Oracle Exadata Database Service on Cloud@Customer
G38694-01
Copyright ©2025, Oracle and/or its affiliates.