Oracle Cloud Infrastructureドキュメント

構成

これらのオプションの構成を使用して、CLI機能を拡張できます。 CLIは、CLI固有の構成にファイルを使用することをサポートしています。 次のことが可能です。

  • デフォルトのプロファイルを指定します。
  • コマンド・オプションにデフォルト値を設定して、コマンド・ラインに入力する必要はありません。
  • コマンドの別名を定義します。 たとえば、"ls"をlistの別名として使用します。
  • オプションの別名を定義します。 たとえば、"--ad"を--availability-domainの別名として使用します。
  • コマンド・ラインでJMESPath式を入力する代わりに、--queryオプションに渡される名前付き問合せを定義します。

デフォルトのロケーションとファイル名は~/.oci/oci_cli_rcです。 また、このファイルを--cli-rc-fileオプションで、または--defaults-fileオプションで明示的に指定することもできます。 次に例を示します。

# Uses the file from ~/.oci/oci_cli_rc
oci os bucket list
			
# Uses a custom file
oci os bucket list --cli-rc-file path/to/my/cli/rc/file

oci-cli-rcファイルを設定するには、次のコマンドを実行します。


oci setup oci-cli-rc --file path/to/target/file

このコマンドを実行すると、指定したファイルが作成されます。これには、デフォルトのコマンド別名、パラメータ別名および名前付き問合せの例が含まれます。

ノート

Windowsを使用している場合は、スラッシュのかわりにバックスラッシュをパス名のディレクトリ・セパレータとして使用する必要があります。

デフォルト・プロファイルの指定

CLIコンフィギュレーション・ファイルのOCI_CLI_SETTINGSセクションにデフォルト・プロファイルを指定します。 次の例は、IADという名前のデフォルト・プロファイルを指定する方法を示しています。 CLIは、~/.oci/configファイル、または--config-fileオプションを使用して指定したその他のファイルで、IADという名前のプロファイルを探します。

[OCI_CLI_SETTINGS]
default_profile=IAD

OCI_CLI_PROFILE環境変数を使用して、--profileオプションのデフォルト値を指定することもできます。

デフォルトのプロファイル値が複数のロケーションで指定されている場合、優先順位は次のとおりです:

  1. --profileオプションで指定された値。
  2. OCI_CLI_PROFILE環境変数で指定された値。
  3. CLIコンフィギュレーション・ファイルのOCI_CLI_SETTINGSセクションのdefault_profileフィールドで指定された値。

デフォルト値の指定

CLIはデフォルト値ファイルの使用をサポートしているので、コマンド・ラインに入力する必要はありません。 たとえば、各起動インスタンス・コマンドで--compartment-idを入力するか、Object Storageコマンドを使用するときに--namespaceを指定し続ける必要はありません。 この情報をデフォルト値ファイルに入れることができます。

デフォルト値は、一般的なものから特定のものまで、さまざまなレベルで適用できます:

  • グローバルに、すべてのCLIコマンドに適用されます。
  • ComputeまたはObject Storageなどの特定のサービス。
  • 特定のグループ(例えば、イメージのエクスポートに関連するコマンド)。
  • 特定のコマンド。

デフォルト値は階層的に扱われ、特定の値は一般的な値より優先順位が高くなります。 たとえば、compartment-idおよびcompute instance launchコマンド用に定義された特定のcompartment-idにグローバルに定義された値がある場合、CLIはグローバル・デフォルトの代わりにcompute instance launchの値を使用します。

デフォルト値ファイル名とロケーション

CLIを起動すると、プログラムは~/.oci/oci_cli_rcのデフォルト値ファイルを探します。 次の図に示すように、--cli-rc-fileオプションを使用して別のファイルとロケーションを指定することもできます:

# Uses the default values file from ~/.oci/oci_cli_rc
oci os bucket list
					
# Uses a custom default values file
oci os bucket list --cli-rc-file path/to/my/cli/custom-oci-cli-rc-file

コマンド値の優先順位

コマンド・ラインに値が指定されている場合は、--cli-rc-fileにも存在し、コマンド・ラインの値が優先されます。 複数の値をとるオプションを持つコマンドの場合、値は完全にコマンド・ラインまたは--cli-rc-fileから取得されます。 2つのソースはマージされません。

デフォルト値ファイルの構文

--cli-rc-fileファイルは、セクションごとに1つ以上のキーを使用して異なるセクションに分割できます。

次の例では、ファイルには2つのセクションがあり、各セクションにはキーがあります。 使用するセクションを指定するには、CLIで--profileオプションを使用します。

[DEFAULT]
compartment-id = ocid1.compartment.oc1..aaaaaaaal5zx25nzpgeyqd3gzijdlg3ieqeyrggnx7il26astxxhqoljnhwa
[ANOTHER_SECTION]
compartment-id = ocid1.compartment.oc1..aaaaaaaal3gzieyqdrggnx7xil26astxxhqol2pgjjdlieqeyg35nz5znhwa

キー

キーにはコマンド・ライン・オプションの名前が付けられますが、先頭の二重ハイフン(-)は使用しないでください。 たとえば、--image-idのキーはimage-idです。 単一の値、複数の値、およびフラグのキーを指定できます。

  • 単一値のキー。 次の例は、異なるレベルで、異なるスコープでキー値を指定する方法を示しています。

    [DEFAULT]
    # Defines a global default for bucket-name
    bucket-name = my-global-default-bucket-name
    
    # Defines a default for bucket-name, which applies to all 'compute' commands
    compute.bucket-name = bucket-name-for-image-import-export
    				
    # Defines a default for bucket-name, which applies to all 'os object' commands (e.g., os object get)
    os.object.bucket-name = bucket-name-for-object-commands
    
    # Defines a default for bucket-name, for the 'os object multipart list' command
    os.object.multipart.list.bucket-name = bucket-name-for-multipart-list
  • 複数の値のキー。 oci os object bulk-uploadコマンドの--include--excludeなど、いくつかのオプションを複数回指定することができます。 次に例を示します。

    oci os object bulk-upload -ns my-namespace -bn my-bucket --src-dir my-directory --include *.txt --include *.png

    次の例は、--cli-rc-fileファイルに--include値を入力する方法を示しています

    [DEFAULT]
    os.object.bulk-upload.include =
    			*.txt
    			*.png

    前の例では、各行に1つの値が与えられ、各行はそのキーの下にインデントされなければなりません。 タブやスペースを使うことができ、インデントの量は関係ありません。 キーと同じ行に値を設定し、次の行に値を追加して、値にpathステートメントを使用することもできます。 次に例を示します。

    [DEFAULT]
    os.object.bulk-upload.include = *.pdf
    			*.txt
    			*.png
    			my-subfolder/*.tiff
  • フラグのキー。 いくつかのコマンド・オプションは、ブール値を使用する--forceのようなフラグです。 --forceオプションのフラグを設定するには、次のコマンドを使用します。

    os.object.delete.force=true

コマンド別名の指定

CLI構成ファイルのOCI_CLI_COMMAND_ALIASESセクションに名前付き問合せを指定します。 別名には、グローバル別名とコマンド・シーケンス別名の2タイプがあります。 次の例は、別名の各タイプを示しています。

[OCI_CLI_COMMAND_ALIASES]
# This is a global alias that lets you use "ls" instead of "list" for any list command in the CLI.
#
ls = list

# Command examples:
# oci os object ls or oci os compute ls

# This is a command sequence alias that lets you use "oci os object rm" instead of "oci os 
# object delete". 
# <alias> = <dot-separated sequence of groups and sub-groups>.<command or group to alias>
# 
rm = os.object.delete					

# Command example:
# <alias> = rm, <sequence of groups and sub-groups> = os object, <command or group to alias> = delete	 								

CLI構成ファイルでオプションのデフォルト値を定義する場合は、定義した別名名を使用できます。 たとえば、--listの別名として-lsがある場合、次のコマンドを使用してインスタンスをリストするときに、「可用性ドメイン」のデフォルトを定義できます。

[DEFAULT]
compute.instance.ls.compartment-id=ocid1.compartment.oc1..aaaaaaaal5zx25nzpgeyqd3gzijdlg3ieqeyrggnx7il26astxxhqoljnhwa

オプション別名の指定

CLI構成ファイルのOCI_CLI_PARAM_ALIASESセクションにオプション別名を指定します。 オプションの別名はグローバルに適用されます。 次の例は、コマンド・オプションの別名を示しています。


[OCI_CLI_PARAM_ALIASES]
# Option aliases either start with a double hyphen (--) or are a single hyphen (-) followed by a # single letter. For example: --example-alias, -e
#
--ad = --availability-domain
--dn = --display-name
--egress-rules = --egress-security-rules
--ingress-rules = --ingress-security-rules

CLI構成ファイルでオプションのデフォルト値を定義する場合は、定義した別名名を使用できます。 たとえば、--availability-domainの別名として-adがある場合、次のコマンドを使用してインスタンスをリストするときに、「可用性ドメイン」のデフォルトを定義できます。

[DEFAULT]
compute.instance.list.ad=xyx:PHX-AD-1

名前付き問合せの指定

--queryパラメータを使用して出力をフィルタ処理または操作する場合は、コマンド・ラインでJMESPath式を使用する代わりに、名前付き問合せを定義できます。

CLI構成ファイルのOCI_CLI_CANNED_QUERIESセクションに名前付き問合せを指定します。

名前付き問合せの例

自動完了を有効化

CLIインストーラを使用した場合は、自動的に有効になるため、自動完了を構成する必要はありません。

手動CLIインストールで自動完了(タブ補完)を有効にするには、次のコマンドを実行します。

oci setup autocomplete

セッションごとに自動完了を有効にするには、次のコマンドを実行します。

eval "$(_OCI_COMPLETE=source oci)"
ノート

Windowsでの自動補完のサポート

Windowsでの自動補完は、PowerShellを使用している場合にのみサポートされます。 この機能を有効にするためにスクリプトが実行されます。 ただし、PowerShell実行ポリシーをRemoteSignedに変更する必要があります。 このポリシーを構成するには、PowerShellコマンド・ラインで次のコマンドを実行します。

Set-ExecutionPolicy RemoteSigned

FIPS日付ライブラリの使用

CLIは、LinuxでFIPS日付ライブラリを使用するように構成できます。 CLIはPython SDK上に構築されており、オペレーティング・システム・レベルの暗号化ライブラリを活用しています。

環境の構成

  1. OpenSSLのインストールされたバージョンがFIPSに準拠していることを確認します。 次のコマンドを実行します。
  2. openssl version

    "fips"がバージョン名の一部ではない場合は、OpenSSLをFIPS準拠のバージョンにアップグレードする必要があります。 OpenSSLの最新バージョンをダウンロードできます : https://www.openssl.org/source/

  3. LibcryptoのFIPS準拠バージョンのロケーションを確認します:
  4. ls -l /usr/lib64/libcrypto*
  5. 環境変数OCI_CLI_FIPS_LIBCRYPTO_FILEをlibcryptoのロケーションに設定してください:
  6. export OCI_CLI_FIPS_LIBCRYPTO_FILE=</path/to/libcrypto.x.x.x>

    すべてのセッションの開始時にこのコマンドを実行しない場合は、your.bashrcまたはbash_profileファイルに追加できます。

    このコマンドで環境変数が正しく設定されていることを確認できます。

    set | grep OCI_CLI_FIPS_LIBCRYPTO_FILE

「クイックスタート」に概説されている標準のインストール手順に進むことができます

構成の検証

CLIが「環境の構成」中に指定したライブラリを使用していることを確認するには、Pythonで次のコマンドを実行します。 CLIが使用する環境と同じ環境で、これを行なってください。

import ssl
ssl.FIPS_mode()

これによって1が戻され、SSLがOCI_CLI_FIPS_LIBCRYPTO_FILE環境変数で指定されたライブラリを使用していることが示されます。