機械翻訳について

OCI CLIの使用

この項では、OCI CLIをインストールおよび構成する手順と、使用に役立つ一般的な情報について説明します。 「Oracle Private Cloud Applianceユーザーズ・ガイド」の残りの部分では、ステップ・バイ・ステップ・プロシージャのコンテキスト内でOCI CLIを使用してタスクを完了する方法を示します。

OCI CLIは、「コンピュート・エンクレーブ」へのコマンドライン・インタフェースです。 OCI CLIは単独で使用することも、「コンピュートWeb UI」とともに使用してタスクを完了することもできます。 OCI CLIは、「コンピュートWeb UI」と同じコア機能に加えて、機能を拡張するスクリプトを実行する機能などの追加のコマンドを提供します。 OCI CLI機能は、次のURLを使用してブラウザからアクセスできるREST APIに基づいています:

https://console.pcasysname.example.com/api-reference

ここで、pcasysnamePrivate Cloud Applianceの名前、example.comはドメインです。 システム名とドメイン名は、「サービスWeb UI」のダッシュボードで検索するか、この情報を管理者に問い合せることができます。

始める前に

OCI CLIをインストールして使用するには、次が必要です:

  • 「コンピュートWeb UI」のユーザー・アカウント。

  • API署名キー・ペア。APIリクエストの署名に必要です。 PEM形式のRSA公開キー/秘密キーのペアがまだない場合は、OCI CLI構成ステップで作成できます。 ユーザー・アカウントに公開キーを追加するには、「ユーザー・プロファイルへのAPI公開キーの追加」を参照してください。

  • Private Cloud Appliance自己署名証明書。

    この要件は、構成ステップ中に満たされます。

OCI CLIは、macOSMicrosoft Windowsまたはサポートされている任意のLinux/UNIXオペレーティング・システムにインストールできます:

  • Oracle Linux 7およびOracle Linux 8

  • CentOS 7.0およびCentOS 8.x

  • Ubuntu 16.04、Ubuntu 18.04およびUbuntu 20.04

OCI CLIのインストール

パッケージ・マネージャを使用して、Oracle LinuxまたはmacOSオペレーティング・システムにOCI CLIをインストールできます。 Microsoft Windowsまたはその他のオペレーティング・システムにインストールするには、インストール・スクリプトを使用します。

重要:

CLIがすでにインストールおよび構成されている場合は、「OCI CLIの構成」にスキップして、Private Cloud ApplianceのCLIをさらに構成する方法を学習します。

CLI、その依存関係およびPythonをインストールするには、オペレーティング・システムのステップに従います。 インストール中に、「インストール・スクリプト・プロンプトへの応答」の説明に従って情報のプロンプトに応答します。

Oracle Linux 8

次のコマンドを実行して、CLIをインストールします:

$ sudo dnf -y install oraclelinux-developer-release-el8
$ sudo dnf install python36-oci-cli

CLIをアンインストールするには、次を実行します:

$ sudo dnf remove python36-oci-cli

Oracle Linux 7

次のコマンドを実行して、CLIをインストールします:

$ sudo yum install python36-oci-cli

CLIをアンインストールするには、次を実行します:

$ sudo yum remove python36-oci-cli

macOS

Homebrewを使用して、CLIをmacOSにインストール、アップグレードおよびアンインストールできます。

ノート:

オプションで、インストール・スクリプトを使用してCLIをインストールできます。 詳細は、このセクションの「その他のオペレーティング・システムでのインストール・スクリプトの使用」を参照してください。

  • CLIをインストールするには、次を実行します:

    $ brew update && brew install oci-cli
  • CLIをアップグレードするには、次を実行します:

    $ brew update && brew upgrade oci-cli
  • CLIをアンインストールするには、次を実行します:

    $ brew uninstall oci-cli

Microsoft Windows

Microsoft Windows PowerShellを使用してCLIをインストールできます。

  1. 管理者として実行オプションを使用してPowerShellコンソールを開きます。

  2. http_proxyおよびhttps_proxy環境変数を設定します。

    重要:

    https_proxyの値は、HTTPプロキシ・サーバーのホスト名またはIPアドレスです。

    $Env:http_proxy="http://www-proxy.example.com:80"
    $Env:https_proxy="http://www-proxy.example.com:80"

    プロキシ・サーバーでユーザー名とパスワードが必要な場合、または80以外のポート番号を使用する場合は、次の例に示すようにその情報を含めます:

    $Env:https_proxy=http://username:password@proxy.example.com:port

    プロキシ変数が正しく設定されていることを確認します。 インターネットのロケーションに接続できることを確認します。

    $Env:http_proxy
    $Env:https_proxy
    ping https://raw.githubusercontent.com
  3. インストーラは、スクリプトをインストールして実行することでオートコンプリートを有効にします。 このスクリプトを実行できるようにするには、RemoteSigned実行ポリシーを有効にする必要があります。

    PowerShellのリモート実行ポリシーを構成するには、次のコマンドを実行します:

    $ Set-ExecutionPolicy RemoteSigned
  4. PowerShellがMicrosoft Windows 2012およびMicrosoft Windows 2016にTLS 1.2を使用するように強制します:

    $ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
  5. インストール・スクリプトをダウンロードします:

    $ Invoke-WebRequest ^
    https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1 ^
    -OutFile install.ps1
  6. プロンプトの有無に関係なく、インストール・スクリプトを実行します。

    前のステップでダウンロードしたinstall.ps1スクリプトを実行します。

    プロンプトを回避し、デフォルト値を受け入れるには、次のオプションを指定してスクリプトを実行します:

    $ install.ps1 -AcceptAllDefaults
  7. プロキシ環境変数の設定を解除します。

    $Env:http_proxy=""
    $Env:https_proxy=""

その他のオペレーティング・システムでのインストール・スクリプトの使用

その他のオペレーティング・システムの場合は、次のインストール・スクリプトを実行して、CLI、その依存関係、およびPythonをインストールします。

$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

プロンプトを回避し、デフォルト値を受け入れるには、--accept-all-defaultsオプションを追加します。

インストール・スクリプトのプロンプトへの応答

  • 互換性のあるバージョンのPythonがLinuxまたはMicrosoft Windowsにインストールされていない場合は、バイナリおよび実行可能ファイルをインストールするロケーションを指定するよう求められます。 スクリプトによってPythonがインストールされます。

  • 互換性のあるバージョンのPythonがmacOSにインストールされていない場合は、Pythonのバージョンに互換性がないことが通知されます。 インストールを続行する前にアップグレードする必要があります。 スクリプトは、Pythonをインストールしません

  • CLIを最新バージョンにアップグレードするよう求められたら、Yで応答して既存のインストールを上書きします。

  • PATHの更新を求められたら、Yで応答して、実行可能ファイルへのフルパスを指定せずにociコマンドを起動できるようにします。

OCI CLIの構成

OCI CLIを使用する前に、Private Cloud Applianceを操作するように構成し、システム認証局(CA)チェーンを取得する必要があります。 構成を手動で完了するか、構成設定ツールを使用して支援できます。

重要:

すでにOCI CLIを使用しており、他の目的で構成されている場合は、構成ステップに進む前に、この項を完全に読んでください。

必要な情報の取得

OCI CLIを手動で構成する場合でも、設定構成ツールを使用する場合でも、構成ファイルに指定する必要がある情報があります。 構成プロセスを開始する前に、次のことを確認してください:

  • ユーザーOCID

    ユーザーOCIDはocid1.user.unique_ID形式です。 ユーザーOCIDは、「コンピュートWeb UI」のユーザー詳細ページからコピーできます。 ユーザー詳細ページに移動するには、「コンピュートWeb UI」ダッシュボードでユーザー名をクリックし、マイ・プロファイルをクリックします。

  • テナンシOCID

    テナンシOCIDはocid1.tenancy..unique_ID形式です。 テナンシOCIDは、「コンピュートWeb UI」のテナンシ詳細ページからコピーできます。 テナンシ詳細ページに移動するには、「コンピュートWeb UI」ダッシュボードでユーザー名をクリックし、テナンシをクリックします。

  • リージョン名

    リージョン名はpcasys1.example.com形式で、pcasys1Private Cloud Applianceの名前、example.comはドメインです。

    「サービスWeb UI」にアクセスできる場合は、ダッシュボードでシステム名とドメイン名を確認できます。 それ以外の場合は、「サービスWeb UI」管理者に情報を問い合せてください。

既存のAPI公開キーと秘密キーのペアがまだない場合は、手動または自動のOCI CLI構成の一部として作成することをお薦めします。 詳細は、「手動構成」または「構成の自動化」の項を参照してください。

使用する既存のAPI公開キーと秘密キーのペアがある場合は、次のことを確認してください:

  • これらはPEM形式です。

  • 公開キーがユーザー・プロファイルに追加されます。

  • 秘密キーのフルパスとファイル名がわかっています。 たとえば、~/.oci/oci_api_key.pem です。

  • 公開キーのフィンガープリントはxx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx形式です。 このフィンガープリントは、プロファイル・ページ(「コンピュートWeb UI」)またはターミナル(コマンドを使用して)にあります。 たとえば:

    openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c

手動構成

次のステップを実行して、Private Cloud ApplianceOCI CLIを手動で構成します。 必要な情報がすべて収集されていることを確認します。

次のステップでは、Linuxシステム上にあり、「コンピュートWeb UI」を使用してユーザーがすでに作成されていることを前提としています。 ただし、基本手順はほかのシステム・タイプでも同じです。

  1. 端末から、CLIをインストールしたシステムにログインし、APIキー・ペアを作成します。 たとえば:

    $ oci setup keys
    Enter a passphrase for your private key (empty for no passphrase):
    Public key written to: /home/username/.oci/oci_api_key_public.pem
    Private key written to: /home/username/.oci/oci_api_key.pem
    Public key fingerprint: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
  2. ブラウザからWeb UIにログインします。

  3. ユーザー詳細ページにナビゲートします。 ページの右上にある自分のユーザー名をクリックし、マイ・プロファイルをクリックします。 ユーザーの詳細ページが表示されます。

  4. ユーザー詳細ページのリソース・セクションで、APIキーをクリックし、APIキーの追加ボタンをクリックします。

  5. 公開キーのロケーションに移動するか、公開キーの内容を貼り付けてキーのアップロードをクリックします。

  6. /home/username/.ociディレクトリに、configという名前のファイルを作成します。 必要な情報を含むプロファイル・セクションを追加します:

    [PCA1]
    user=ocid1.user...unique_id
    key_file=/home/username/.oci/oci_api_key.pem
    tenancy=ocid1.tenancy.unique_ID
    region=pcasys1.example.com
    fingerprint=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

    この例では、pcasys1Private Cloud Applianceの名前で、example.comがドメインです。

    「サービスWeb UI」にアクセスできる場合は、ダッシュボードでシステム名とドメイン名を確認できます。 それ以外の場合は、「サービスWeb UI」管理者に情報を問い合せてください。

構成の自動化

OCI CLIを初めて使用する場合は、設定構成ツールを使用すると、設定プロセスを確認できます。 oci setup configコマンドを入力すると、構成ファイルおよびAPI公開キー/秘密キーに必要な情報の入力を求めるプロンプトが表示され、APIキー・ペアが生成され、構成ファイルが作成されます。

設定構成ツールを使用してOCI CLIを構成するには:

  1. コマンド・ウィンドウから、oci setup configと入力し、プロンプトに従います。たとえば:

    $ oci setup config
    This command provides a walkthrough of creating a valid CLI config file.
    Enter a location for your config [/home/myuserdir/.oci/config]:
    Enter a user OCID: ocid1.user.unique_ID
    Enter a tenancy OCID: ocid1.tenancy.unique_ID

    重要:

    ステップ「索引または名前でリージョンを入力」では、必要なsystem.domain形式でリージョンを入力することはできません。 かわりに、Private Cloud Applianceに意味のない値として、リストから任意の値を入力します。 ステップ2では、構成ファイルを変更して、Private Cloud Applianceに必要な情報を指定します。

    Enter a region by index or name(e.g.
    1: ap-chiyoda-1, 2: ap-chuncheon-1, 3: ap-hyderabad-1, 4: ap-melbourne-1, 5: ap-mumbai-1,
    6: ap-osaka-1, 7: ap-seoul-1, 8: ap-sydney-1, 9: ap-tokyo-1, 10: ca-montreal-1,
    11: ca-toronto-1, 12: eu-amsterdam-1, 13: eu-frankfurt-1, 14: eu-zurich-1, 15: me-dubai-1,
    16: me-jeddah-1, 17: sa-santiago-1, 18: sa-saopaulo-1, 19: sa-vinhedo-1, 20: uk-cardiff-1,
    21: uk-gov-cardiff-1, 22: uk-gov-london-1, 23: uk-london-1, 24: us-ashburn-1, 
    25: us-gov-ashburn-1, 26: us-gov-chicago-1, 27: us-gov-phoenix-1, 28: us-langley-1, 
    29: us-luke-1, 30: us-phoenix-1, 31: us-sanjose-1): 24
    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]: Y
    Enter a directory for your keys to be created [/home/myuserdir/.oci]:
    Enter a name for your key [oci_api_key]:
    Public key written to: /home/myuserdir/.oci/oci_api_key_public.pem
    Enter a passphrase for your private key (empty for no passphrase):
    Private key written to: /home/myuserdir/.oci/oci_api_key.pem
    Fingerprint: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
    Config written to /home/myuserdir/.oci/config
  2. ~/myuserdir/.ociディレクトリに移動し、正しいリージョンを使用するようにconfigファイルを変更します。たとえば:

    [DEFAULT]
    user=ocid1.user.unique_ID
    fingerprint=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
    key_file=/home/myuserdir/.oci/oci_api_key.pem
    tenancy=ocid1.tenancy.unique_ID
    region=pcasys1.example.com

    ここで、pcasys1Private Cloud Applianceの名前、example.comはドメインです。

    「サービスWeb UI」にアクセスできる場合は、ダッシュボードでシステム名とドメイン名を確認できます。 それ以外の場合は、「サービスWeb UI」管理者に情報を問い合せてください。

  3. まだアップロードしていない場合は、「コンピュートWeb UI」を使用してAPI署名公開キーをアップロードします。 詳細は、「ユーザー・プロファイルへのAPI公開キーの追加」を参照してください。

認証局バンドルの取得

CLIを手動で構成した場合でも、自動ツールを使用した場合でも、コマンドを実行する前に、Private Cloud Appliance外部サイロCAチェーンを取得する必要があります。

外部サイロCAチェーンは、CLIをインストールするシステムにコピーし、oci_cli_rcファイルで参照する必要があります。

  1. ~/.ociディレクトリに移動します。

  2. 次のロケーションから外部サイロCAチェーンをコピーします:

    https://iaas.system-name.domain-name/cachain

    CAチェーンをファイルに保存します。 この例では、ファイルはca.crtという名前で、~/.ociディレクトリに保存されます。

  3. ~/.ociディレクトリに、oci_cli_rcという名前のファイルを作成します。 プロファイル名とパスを外部サイロCAチェーンのコピーに追加します。 たとえば:

    [PCA1]
    cert-bundle=/home/username/.oci/ca.crt
  4. OCI_CLI_CERT_BUNDLE環境変数を前のステップと同じパスに設定します。

OCI CLI構成のテスト

重要:

手動構成プロセスに従い、この項のコマンドを実行して構成をテストしようとすると、構成ファイルの権限がオープンしすぎていることを示す警告メッセージが表示されることがあります。 この場合、警告メッセージの指示に従って問題を解決してください。

OCI CLIをインストールして構成した後、listコマンドを入力して、OCI CLIが正しく動作していることを確認します。 たとえば:

$ oci iam user list

複数プロファイルの使用

OCI CLI構成ファイルconfigおよびoci_cli_rcは、複数のプロファイルを定義できます。 configファイルの各プロファイル・セクションは、Private Cloud Appliance内のテナンシを参照します。 テナンシは異なるアプライアンスに配置できます。

次の例の~/.oci/configファイルでは、PCA1プロファイルはpcasys1アプライアンスのテナンシ用で、PCA2プロファイルはpcasys2アプライアンスのテナンシ用で、DEFAULTプロファイルはPCA1プロファイルのコピーです。 DEFAULTプロファイルは、使用するプロファイルを指定していない場合に使用されます。

この例では、キー・ファイルとフィンガープリントは各プロファイルで同じですが、ユーザーOCIDは2つの異なるアプライアンスで、または同じアプライアンス上の2つの異なるテナンシで異なります。

[DEFAULT]
user=ocid1.user.unique_ID_1
key_file=/home/username/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.unique_ID_1
region=pcasys1.example.com
fingerprint=58:f8:69:13:e1:a8:51:4d:5a:a0:11:69:ca:09:48:73
[PCA1]
user=ocid1.user.unique_ID_1
key_file=/home/username/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.unique_ID_1
region=pcasys1.example.com
fingerprint=58:f8:69:13:e1:a8:51:4d:5a:a0:11:69:ca:09:48:73
[PCA2]
user=ocid1.user.unique_ID_2
key_file=/home/username/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.unique_ID_2
region=pcasys2.example.com
fingerprint=58:f8:69:13:e1:a8:51:4d:5a:a0:11:69:ca:09:48:73

ノート:

使用するプロファイルを指定しない場合は、DEFAULTプロファイルが使用されます。 プロファイルを指定せず、DEFAULTプロファイルがない場合は、コマンドで--profileオプションを使用する必要があります。

プロファイルを指定するには、プロファイル名をOCI_CLI_PROFILE環境変数の値として設定します:

export OCI_CLI_PROFILE=PCA1

--profileオプションは、次の例に示すように、ociで指定されたグローバル・オプションです:

$ oci --profile PCA2 iam user list

configファイルで指定したプロファイルと同じプロファイルをoci_cli_rcファイルで指定する必要があります:

[DEFAULT]
cert-bundle=/home/username/.oci/pca1/ca.crt
[PCA1]
cert-bundle=/home/username/.oci/pca1/ca.crt
[PCA2]
cert-bundle=/home/username/.oci/pca2/ca.crt

複数のプロファイルを構成している場合は、.ociディレクトリ内にサブディレクトリを作成して、プロファイルごとに異なるAPIキーおよび外部サイロCAチェーンを格納することを検討してください。

プロファイルごとに環境変数ファイルを作成することを検討してください。 OCI_CLI_PROFILEの設定に加えて、OCI_CLI_CERT_BUNDLEoci_cli_rcファイルで指定したパスに設定します。 OCI_CLI_TENANCYを、このプロファイルのテナンシのOCIDに設定します。 他のコンパートメントおよびリソース名を指定すると、コマンドの入力と読取りが容易になります。 たとえば:

$ oci network subnet create -c $Networking --vcn-id $VCN1 ...

API署名キーの操作

OCI CLIを使用するか、REST APIリクエストを作成する必要がある場合は、RSA API署名の公開キーと秘密キーのペアをPEM形式にする必要があります。 APIリクエストは秘密キーで署名され、公開キーはリクエストの信頼性を検証するために使用されます。 秘密キーはローカルに格納され、公開キーはユーザー・アカウントにアップロードされます。 ユーザー・アカウントごとに最大3つの公開キーを設定できます。

重要:

API署名キー・ペアは、コンピュート・インスタンスへのアクセスに使用するSSHキーではありません。

APIキー・ペアの生成

公開キーと秘密キー・ペアに署名する既存のAPIがない場合は、手動または自動の構成の一部としてキー・ペアを作成することをお薦めします。 これを行うには、「手動構成」セクションに示すようにoci setup keysコマンドを使用するか、「構成の自動化」セクションのプロンプトに従います。

OCI CLI構成とは無関係にキー・ペアを作成する場合は、次の項では、Linux、macOSおよびMicrosoft Windowsオペレーティング・システムでこれを行う方法を示します。 その後、OCI CLIを構成するときにこれらのキーを使用できます。

LinuxまたはmacOSの使用

  1. 秘密キーを生成します。

    • パスフレーズで暗号化されたキーを生成します:

      $ openssl genrsa -out ~/.oci/oci_api_key.pem -aes128 2048

      ノート:

      パスフレーズを使用することを強くお勧めします。

    • パスフレーズなしでキーを生成します:

      $ openssl genrsa -out ~/.oci/oci_api_key.pem 2048
  2. 秘密キー・ファイルの権限を確認し、必要に応じて変更します。

    秘密キー・ファイルのみを読み取れるようにするには、ファイル権限を600または400にする必要があります。

  3. 新しい秘密キーから公開キーを生成します:

    $ openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem

    この公開キー・ファイルは、秘密キー・ファイルと同じ権限を持つか、全員が読取り可能です。

Microsoft Windowsの使用

  1. Microsoft WindowsのGit Bashをインストールします。

    https://git-scm.com/download/winを参照してください。

  2. Microsoft WindowsパスにOpenSSLバイナリを含めます。

    デフォルトのインストールでは、openssl.exeバイナリは次のディレクトリにあります:

    C:\Program Files\Git\mingw64\bin
  3. 秘密キーを生成します。

    • パスフレーズで暗号化されたキーを生成します:

      $ openssl genrsa -out %HOMEDRIVE%%HOMEPATH%\.oci\oci_api_key.pem -aes128 -passout  ^
      stdin 2048

      ノート:

      パスフレーズを使用することを強くお勧めします。

    • パスフレーズなしでキーを生成します:

      $ openssl genrsa -out %HOMEDRIVE%%HOMEPATH%\.oci\oci_api_key.pem 2048
  4. 秘密キー・ファイルの権限を確認し、必要に応じて変更します。

    ファイル権限は、秘密キー・ファイルのみを読み取れるように設定する必要があります。

  5. 新しい秘密キーから公開キーを生成します:

    $ openssl rsa -pubout -in %HOMEDRIVE%%HOMEPATH%\.oci\oci_api_key.pem -out  ^
    %HOMEDRIVE%%HOMEPATH%\.oci\oci_api_key_public.pem

    この公開キー・ファイルは、秘密キー・ファイルと同じ権限を持つか、全員が読取り可能です。

ユーザー・プロファイルへのAPI公開キーの追加

API署名キーは、PEM形式のRSA公開/秘密キーのペアで、少なくとも2048ビットです。

「コンピュートWeb UI」を使用して、独自のAPI公開キーをプロファイルに追加します。 OCI CLIは、API署名キー・ペアが設定されるまで使用できません。 「コンピュートWeb UI」のログインとパスワードがない場合は、管理者に連絡してください。

ユーザーは、ユーザー・アカウントに最大3つの公開キーを追加できます。 ユーザーが複数のAPI公開キーを持っている場合、ユーザーはキーのフィンガープリントを指定して、リクエストの署名に使用しているキーを指定する必要があります。

「コンピュートWeb UI」の使用

  1. ブラウザから、「コンピュートWeb UI」にログインします。

  2. ユーザー詳細ページにナビゲートします。

    • 自分のユーザー・アカウントに公開キーを追加する場合は、「コンピュートWeb UI」の右上にあるユーザー・アイコンをクリックし、「マイ・プロファイル」をクリックします。

    • 別のユーザー・アカウントに公開キーを追加する場合は、ナビゲーション・メニューの「アイデンティティ」をクリックし、「ユーザー」をクリックして、ユーザー・リストでユーザーの名前をクリックします。

  3. ユーザーの詳細ページで、「リソース」セクションまでスクロールし、「APIキー」をクリックしてから、「APIキーの追加」をクリックします。

  4. 「公開キーの追加」ダイアログで、公開キーのロケーションに移動するか、公開キーの内容を貼り付けて、「キーのアップロード」をクリックします。

OCI CLIの使用

OCI CLIをインストールして構成した後、api-key uploadコマンドを使用して、ユーザー・アカウントの追加キーをアップロードしたり、別のユーザーのキーをアップロードできます。

  1. API署名キーを必要とするユーザーのOCID (oci iam user list)を取得します。

  2. ユーザーAPIキー・リスト・コマンドを使用して、アカウントにまだ最大3つのAPI署名キーがないことを確認します。

    構文:

    $ oci iam user api-key list --user-id user_OCID
  3. APIキー・アップロード・コマンドを実行します。

    構文:

    $ oci iam user api-key upload --user-id ocid1.user.unique_ID \
    { --key public_key | --key-file file://public_keyfile.pem }
    • public_key - PEM形式のRSA公開キー

    • public_keyfile .pem - PEM形式のRSA公開キーを含むファイル

API公開キー・フィンガープリントの検索

公開キーのフィンガープリント(xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx形式)は、プロファイル・ページ(「コンピュートWeb UI」)またはターミナル(次のOpenSSLコマンドを使用)にあります:

LinuxおよびmacOS:

$ openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c

Microsoft Windows:

$ openssl rsa -pubout -outform DER -in \.oci\oci_api_key.pem | openssl md5 -c

ユーザー・プロファイルからのAPI署名キーの削除

独自のAPI署名キーを削除でき、テナンシ管理者はテナンシ内の任意のユーザーのAPI署名キーを削除できます。

「コンピュートWeb UI」の使用

  1. ナビゲーション・メニューで、アイデンティティをクリックし、ユーザーをクリックします。

  2. API署名キーを削除するユーザー・アカウントの名前をクリックします。

  3. ユーザー詳細ページのリソース・セクションまでスクロールします。

  4. 削除するAPIキーについて、アクション・アイコン(3つのドット)をクリックし、削除をクリックします。

OCI CLIの使用

  1. 次の情報を取得します:

    • API署名キーを削除するユーザー・アカウントのOCID。

      $ oci iam user list
    • 削除するAPI署名キーのフィンガープリント。

      $ oci iam user api-key list --user-id user_OCID
  2. ユーザーAPIキー削除コマンドを実行します。

    構文:

    $ oci iam user api-key delete --user-id user_OCID --fingerprint fingerprint

コマンド構文およびヘルプの検索について

この項では、コマンド構文、OCIDsの検索方法、コマンドに関するヘルプの取得場所など、OCI CLIの使用を開始する際に役立つ基本的な情報を示します。

コマンド構文

通常、OCI CLIに入力されたコマンドの構文は次のとおりです:

$ oci service type action required-parameters optional-parameters

たとえば、次のコマンドの場合:

$ oci iam user create --name joeb --description "Product test" \
--email joeb@example.com
  • iamはサービスです

  • userはリソース・タイプです

  • createはアクションです

  • nameおよびdescriptionは必須パラメータです

  • emailはオプションのパラメータです

OCIDsの取得

OCI CLIを使用する場合、ほとんどのコマンドにOCIDが必要です:

  • listコマンドには、リソースを検索しているコンパートメントのOCIDが必要です。

  • createコマンドには、リソースを作成するコンパートメントのOCIDが必要です。

  • getupdateおよびdeleteコマンドには、リソースのOCIDが必要です。

  • moveコマンドには、リソースのOCIDと宛先コンパートメントのOCIDが必要です。

一部のコマンドでは、別のリソースのOCIDが必要です。 たとえば、DRGのルート表を作成するには、DRGのOCIDが必要です。

OCIDsは、OCI CLIまたは「コンピュートWeb UI」を使用して検索できます。 次に、OCI CLIを使用して最も一般的に必要なOCIDsを検索する方法を示します。

ブロック・ボリューム・サービスOCID

  • ブート・ボリューム

    $ oci bv boot-volume list --availability-domain availability_domain_name \
    --compartment-id compartment_OCID
  • ボリューム

    $ oci bv volume list --compartment-id compartment_OCID
  • ボリューム・バックアップ・ポリシー

    $ oci bv volume-backup-policy list --compartment-id compartment_OCID
  • ボリューム・グループ

    $ oci bv volume-group list --compartment-id compartment_OCID

コンピュート・サービスOCID

  • インスタンス

    $ oci compute instance list --compartment-id compartment_OCID
  • インスタンスVNIC

    $ oci compute instance list-vnics --compartment-id compartment_OCID
  • ボリューム・アタッチメント

    $ oci compute volume-attachment list --compartment-id compartment_OCID

アイデンティティおよびアクセス管理サービスOCID

  • 可用性ドメイン名

    $ oci iam availability-domain list
  • テナンシ内のコンパートメント

    $ oci iam compartment list
  • テナンシ内のコンパートメントとテナンシが含まれます

    $ oci iam compartment list --include-root
  • コンパートメントとテナンシ内のすべてのサブコンパートメント

    $ oci iam compartment list --compartment-id-in-subtree true
  • サブコンパートメントを含むコンパートメント

    $ oci iam compartment list --compartment-id compartment_OCID \
    --compartment-id-in-subtree
  • グループ

    $ oci iam group list
  • ポリシー

    $ oci iam policy list --compartment-id compartment_OCID
  • タグ・ネームスペース

    $ oci iam tag-namespace list --compartment-id compartment_OCID
  • ユーザー

    $ oci iam user list

ネットワーク・サービスOCID

  • DHCPオプション

    $ oci network dhcp-options list --compartment-id compartment_OCID \
    [--vcn-id VCN_OCID]
  • ルート表

    $ oci network route-table list --compartment-id compartment_OCID \
    [--vcn-id VCN_OCID]
  • サブネット

    $ oci network subnet list --compartment-id compartment_OCID \
    [--vcn-id VCN_OCID]
  • VCN

    $ oci network vcn list --compartment-id compartment_OCID

「コンピュートWeb UI」では、OCIDコピー・ボタンはリソースの詳細ページで使用でき、多くの場合、リソース・リストのリソースのアクション・メニューにも表示されます。

OCIDsを簡単に指定し、コマンドを読みやすくするために、環境変数に頻繁に使用するOCIDsを設定することをお薦めします。 たとえば、テナンシをTに設定できます。 コンパートメントが最も頻繁に使用されるOCIDsであり、--compartment-idオプションを-cに短縮できます。

次の例は、NETコンパートメント内のすべてのVCNをリストし、ラージ・シェイプ・インスタンス構成を使用してインスタンスを起動する方法を示しています。

$ oci compute vcn list -c $NET
$ oci compute-management instance-configuration launch-compute-instance \
--instance-configuration-id $INST_CFG_LRG

コマンドを使用したヘルプの利用

インライン・ヘルプを取得するには、--help-hまたは-?をコマンドに追加します:

  • oci --helpは、コマンドおよびグローバル・コマンド・オプションのリストを返します。

  • oci service --helpは、サービスのコマンド参照のサマリーを返します。 たとえば:

    $ oci compute -h
    Usage: oci compute [OPTIONS] COMMAND [ARGS]...
      Compute Service CLI
    
    Options:
      -?, -h, --help  For detailed help on any of these individual commands, enter 
                      <command> --help.
    Commands:
      boot-volume-attachment          Represents an attachment between a...
      capacity-reservation            A template that defines the...
      console-history                 An instance's serial console data.
      dedicated-vm-host               A dedicated virtual machine host...
      dedicated-vm-host-instance      Condensed instance data when...
      device                          Device Path corresponding to the...
      global-image-capability-schema  Global Image Capability Schema
      global-image-capability-schema-version
                                      Global Image Capability Schema...
      image                           A boot disk image for launching an...
      image-capability-schema         Image Capability Schema
      image-shape-compatibility-entry An image and shape that are...
      instance                        A compute host.
      instance-console-connection     The `InstanceConsoleConnection`...
      measured-boot-report            The measured boot report for a...
      pic                             Partner image catalog (PIC).
      shape                           A compute instance shape that can...
      vnic-attachment                 Represents an attachment between a...
      volume-attachment               A base object for all types of...
  • oci service resource_type --helpは、リソース・タイプのコマンド参照のサマリーを返します。 たとえば:

    $ oci compute image -h
    Usage: oci compute image [OPTIONS] COMMAND [ARGS]...
      A boot disk image for launching an instance. For more information, see
      [Overview of the Compute Service].
    
      To use any of the API operations, you must be authorized in an IAM policy.
      If you're not authorized, talk to an administrator. If you're an
      administrator who needs to write policies to give users access, see
      [Getting Started with Policies].
    
      **Warning:** Oracle recommends that you avoid using any confidential
      information when you supply string values using the API.
    
    Options:
      -?, -h, --help  For detailed help on any of these individual commands, enter
                      <command> --help.
    
    Commands:
      change-compartment  Moves an image into a different compartment within...
      create              Creates a boot disk image for the specified instance...
      delete              Deletes an image.
      export              Exports an image to the Oracle Cloud Infrastructure...
      get                 Gets the specified image.
      import              Imports an exported image from the Oracle Cloud...
      list                Lists a subset of images available in the specified...
      update              Updates the display name of the image.
  • oci service resource_type action --helpは、指定されたサービス・リソース・アクションの完全なコマンド参照を返します。 たとえば、次のコマンドは、コンピュート・イメージの作成の完全な説明を表示し、すべてのオプションについて説明します:

    $ oci compute image create -h

詳細は、「Oracle Cloud Infrastructure CLIコマンド・リファレンス」を参照してください。

複雑なコマンド入力でのJSONの使用

複雑なコマンド入力には、複数の値を持つ配列およびオブジェクトが含まれます。 複合入力は、JSON形式のキー/バリュー・ペアのブロックとして渡されます。 JSON形式の入力は、コマンドラインで文字列として、またはコマンドラインで参照されるファイルとして指定できます。

OCI CLIでは、JSON文字列とファイル参照の両方を同じコマンドラインで使用できます。 ただし、同じ値がファイル内で同じコマンド内の文字列内で指定されている場合は、文字列値が優先されます。

JSON文字列の使用

OCI CLIコマンドラインでJSONブロックを文字列として渡すには、改行を削除します。 macOS、LinuxまたはUNIXでは、JSONブロック全体を一重引用符で囲みます。 Microsoft Windowsコマンドラインで、JSONブロックを二重引用符で囲み、ブロック内の二重引用符(")をエスケープします。

オペレーティング・システムまたはシェルで、ドル記号などの他の文字をエスケープする必要がある場合があります。

「パラメータ' parameter_name 'はJSON形式である必要があります」というメッセージが表示された場合は、JSON形式が正しくありません。 「JSONフォーマットの生成」の説明に従ってJSON形式をコピーした場合は、コマンドライン形式、特にエスケープする必要がある文字を再確認してください。

  • macOS、LinuxまたはUNIX

    $ oci compute instance update --instance-id ocid1.image.unique_ID \
    --freeform-tags '{"Department":"Finance"}'
  • Microsoft Windows

    > oci compute instance update --instance-id ocid1.image.unique_ID \
    --freeform-tags "{\"Department\":\"Finance\"}"

JSONファイルの使用

複雑なオプション引数をファイルに格納する利点は、正しい形式でわかっている引数を簡単に再利用できることです。 --generate-param-json-inputオプションまたはgetコマンドの出力からデータをコピーする方法に正確に格納できます: コマンド行文字列に対して行う必要があるため、改行を削除して特定の文字をエスケープする必要はありません。

JSONファイルを使用して入力を渡す場合、オプション引数はfile://というプレフィクスが付いたファイル名になります。 ファイル名には、コマンドを実行しているのと同じディレクトリ内のファイルの名前、ファイルへの相対パス、またはファイルへのフルパスを指定できます。

JSONフォーマットの生成

「パラメータ' parameter_name 'はJSON形式である必要があります」というメッセージが表示された場合は、JSON形式が正しくありません。 次のメソッドは、データを正しく書式設定するのに役立ちます。

単一の複合型オプション値のJSON形式

オプションが複合型の場合、--generate-param-json-inputオプションを使用して、そのオプション値のJSON形式を生成できます。 --generate-param-json-inputオプションの引数は、--オプション指定子なしで、JSON形式を必要とするオプションの名前です。 たとえば、次のコマンドは、ルート表のルート・ルール(--route-rulesオプション)を指定するために使用するJSON形式を示します:

$ oci network route-table update --generate-param-json-input route-rules
[
  {
    "cidrBlock": "string",
    "description": "string",
    "destination": "string",
    "destinationType": "string",
    "networkEntityId": "string"
  },
  {
    "cidrBlock": "string",
    "description": "string",
    "destination": "string",
    "destinationType": "string",
    "networkEntityId": "string"
  }
]

オプション引数に指定する値によって、既存の値が置き換えられます。 たとえば、イングレス・ルールがすでにある場合にエグレス・ルールを追加する場合は、既存のイングレス・ルールと新しいエグレス・ルールの両方を指定する必要があります。 追加するルールのみを指定した場合、既存のルールは失われます。 同様に、ポリシー・ステートメントを追加したり、定義済タグの値を追加する場合、たとえば、追加するものに加えて、保持する既存のステートメントまたは値を再指定する必要があります。

次の例のような選択肢に関するメッセージが出力に含まれる場合があります:

$ oci compute instance launch --generate-param-json-input source-details
[
  "This parameter should actually be a JSON object rather than an array - pick one of the
  following object variants to use",
  {
    "bootVolumeId": "string",
    "sourceType": "bootVolume"
  },
  {
    "bootVolumeSizeInGBs": 0,
    "imageId": "string",
    "kmsKeyId": "string",
    "sourceType": "image"
  }
]

「コンピュートWeb UI」を使用してインスタンスを作成する場合は、カスタム・イメージまたはブート・ボリュームを選択します。 同様に、前の例のメッセージでは、ブート・ボリューム・ブロックまたはイメージ・ブロックのいずれかを指定するように指示されていますが、両方を指定することはできません。

コマンドのすべてのオプションの値のJSON形式

--generate-full-command-json-inputオプションは、複雑な値でない値を含む、指定されたコマンドのすべてのオプションの値に対するJSON形式を表示します。

$ oci network route-table update --generate-full-command-json-input > route_table_update.json

--from-jsonオプションを使用して、カスタマイズしたバージョンのこの出力を渡します。

$ oci network route-table update --from-json file://route_table_update.json

既存の値のJSON形式

このタイプのリソースがすでに存在する場合は、リソースのgetまたはlistを実行してJSONフォーマットを確認し、現在の値も確認します。

$ oci network route-table get --rt-id ocid1.routetable.unique_ID

必要なブロックをこの出力から直接コピーし、必要に応じて値を変更します。

複数の値が許可されている場合は、このメソッドを使用して、保持する値が上書きされないようにします。 必要なブロックをgetまたはlist出力からコピーし、必要に応じて値を変更、追加または削除します。

コマンド出力の書式設定およびフィルタリング

デフォルトでは、すべてのコマンド出力はJSONフォーマットです:

$ oci iam region list
{
  "data": [
    {
      "key": "pcasysname",
      "name": "pcasysname"
    }
  ]
}

必要に応じて、コマンド出力を表として書式設定できます:

$ oci iam region list --output table
+------------+------------+
| key        | name       |
+------------+------------+
| pcasysname | pcasysname |
+------------+------------+

JSONのJMESPath問合せオプションを使用して出力をフィルタできます。 フィルタリングは、大量の出力がある場合に役立ちます。 --output tableオプションは、リソースの各プロパティの列を表示します。 たとえば、インスタンスの出力表には約30列があり、おそらくディスプレイの幅がオーバーフローします。

必要なデータのみを出力するには、次の例に示すように、--queryオプションを--output tableオプションとともに使用します:

$ oci compute image list -c ocid1.compartment.unique_ID --output table \
--query "data [*].{ImageOCID:id, OperatingSystem:\"operating-system\"}"
+-------------------------+-----------------+
| ImageOCID               | OperatingSystem |
+-------------------------+-----------------+
| ocid1.image.unique_ID_1 | OracleLinux     |
| ocid1.image.unique_ID_2 | OracleLinux     |
+-------------------------+-----------------+

JSONのJMESPath問合せ言語の詳細は、JMESPathを参照してください。