Roving Edge Infrastructureデバイスでのコマンドライン・インタフェースの使用

コマンドライン・インタフェースを使用してRoving Edge Infrastructureデバイスにアクセスする方法について説明します。

Oracle Cloud Infrastructureコマンドライン・インタフェース(CLI)には、Roving Edge Infrastructureタスクを構成して実行するためのコマンドのセットが用意されています。デバイスコンソールからコマンドを実行する代わりに、CLIを使用します。場合によっては、CLIを使用して、同等のデバイス・コンソールがないタスクを完了する必要があります。

CLIを使用して、Oracle Cloud Infrastructureクラウド内でRoving Edge Infrastructureのサービス・タスクを実行します。これらのタスクには、ノードの要求、デバイスノード上でのタスクの直接の実行などがあります。CLIは各デバイスに別々にインストールします。デバイスにインストールされたCLIは、環境内でローカルに実行され、インターネット・アクセスは必要ありません。

最低限必要なCLIバージョン

Roving Edge Infrastructureに必要な最小CLIバージョンは2.12.1です。

CLIバージョンの確認

次のURLにアクセスして、現在使用可能なCLIバージョンを確認します:

https://github.com/oracle/oci-cli/blob/master/CHANGELOG.rst

プロンプトで次のコマンドを入力し、マシンに現在インストールされているCLIのバージョンを確認します:

oci --version

マシンに現在使用可能なバージョンより前のバージョンがある場合は、最新バージョンをインストールします。

ノート

常に最新バージョンのCLIに更新してください。CLIは自動的には更新されません。また、新しいCLI機能または更新されたCLI機能にアクセスできるのは、現在のバージョンをインストールした場合のみです。

ホスト・ファイルの更新

/etc/hostsファイルを開き、REDのip_address host_nameエントリを追加します。

ip_addressはRoving Edge InfrastructureデバイスのIPアドレスで、host_nameはCLIを実行しているRoving Edge Infrastructureホストの名前です。

例:

10.0.1.8 rover.mycompany.com

次のコマンドを実行して、ホスト名にアクセスします。

  • redroot.pem証明書をダウンロードします。

    echo -n | openssl s_client -showcerts -connect ip_address:8015 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > redroot.pem

  • 次に、DNSホスト名を表示します。

    openssl x509 -in redroot.pem -text -noout | grep DNS

コマンドの戻り値に、次が表示されます。

  • DNS:*.certcommonname.com: ワイルドカード証明書を示します。証明書に任意のサブドメイン(ex: rover)の接頭辞を付けて、/etc/hostsファイルを開き、次の行を追加します。

    10.145.140.5 rover.certcommonname.com

  • DNS:rover-install-red-1, DNS:...,: DNS出力のいずれかを選択し、 /etc/hostsファイルに次の行を追加します。

    10.145.140.5 rover-install-red-1

/etc/hostsファイルを開いて次の行を追加します。

10.145.140.5 rover.mycompany.com otec-console-local rover-install-red-1

必須パラメータ値が変数(nameなど)としてリストされている場合は、値を指定する必要があります。ドキュメントに示されているようにコマンドを入力します。

コマンド構文に[OPTIONS]が含まれている場合は、オプションのパラメータを示しています。オプションのパラメータとその使用方法の一覧については、CLIのオンライン・ヘルプにアクセスしてください。

構成ファイルの設定

構成ファイルを設定する前に、次の情報を収集する必要があります。

  • Roving Edge InfrastructureテナンシOCID。次のコマンドを使用して、テナンシOCIDを取得します:

    curl -k https://ip_address:12060/v1/tenants/orei

    ip_addressは、Roving Edge InfrastructureデバイスのIPアドレスです。テナンシOCIDは、次のように戻り値に含まれます。

    {
      "id" : "ocid1.tenancy.orei..uniqueID",
      "name" : "orei"
    }

    または、デバイス・コンソールのWebブラウザに次のURLを入力します。

    https://ip_address:12060/v1/tenants/orei

    テナンシOCIDがWebブラウザで返されます。

  • Roving Edge InfrastructureユーザーのIdentity and Access Management (IAM) OCID次のステップを使用してテナンシOCIDを取得します:

    1. デバイスノードのデバイスコンソールにアクセスします。

    2. ナビゲーション・メニューを開き、「アイデンティティ管理」→「ユーザー」を選択します。

      ユーザー・ページが表示されます。すべてのユーザーが表形式でリストされます。

    3. 詳細を取得するユーザーをクリックします。ユーザーの「詳細」ページが表示されます。

    4. 「詳細」ページの「ユーザー情報」OCID行を検索し、リンクをコピーしてこの情報を保存します。

      IAMユーザーWebページは、PEM形式で公開キーをアップロードするために必要なときに開いたままにします。

    5. OCI CLIがインストールされているホストのホーム・ディレクトリに.ociディレクトリを作成します。例:

      • LinuxおよびMacintosh:

        cd $HOME
        mkdir .oci
        cd .oci
      • Windows PowerShell:

        mkdir %HOMEDRIVE%%HOMEPATH%\.oci
        cd ~
        cd .oci
  • PEM形式のRSAキー・ペア: LinuxまたはMacintosh端末、またはWindowsのPowerShellウィンドウで、.ociディレクトリに切り替えて、次を実行します。

    oci setup keys

    このコマンドでは、.ociディレクトリに次のファイルが作成されます。

    • oci_api_key_public.pem

    • oci_api_key.pem

    デバイス・コンソールに戻り、「IAMユーザーの詳細」ページに移動します。ウィンドウの左側にある「APIキー」をクリックし、「公開キーの追加」をクリックして、アップロードするoci_api_key_public.pemファイルを選択します。

    鍵をアップロードしたら、あとで構成ファイルの更新に必要な Fingerprint値を記録します。

    .ociディレクトリで、configファイルを作成し、次のように移入します。

    [DEFAULT]
    user=user_ocid_from_RED_console
    fingerprint=your_fingerprint_generated_after_uploading_the_public_key
    key_file=path_to_home_directory/.oci/oci_api_key.pem
    tenancy=tenancy_ocid_from_curl_command_or_web_browser
    region=region_name
     
    Example:
    [DEFAULT]
    user=ocid1.user.orei..uniqueID
    fingerprint=10:00:00:db:dd:c4:de:71:a1:01:10:88:f9:95:1e:23
    tenancy=ocid1.tenancy.orei..uniqueID
    region=us-ashburn-1
    key_file=/Users/username/.oci/oci_api_key.pem

PEMキーの作成時にパスフレーズを含めた場合は、次の行を追加します。

pass_phrase=your_passphrase 
ノート

Roving Edge Infrastructure OCIDs (usertenancyなど)には、値にoreiが含まれます。

DEFAULTプロファイルを含むconfigファイルがすでにある場合は、選択した名前のプロファイルを使用してさらにエントリを作成できます。

各Roving Edge Infrastructureテナンシ(デバイス)には、独自のプロファイルが必要です。ベース名を使用して、デバイスごとに番号を増分できます。次の例では、ベース名ROVINGEDGEのプロファイル名ROVINGEDGE1を使用します。

次の例では、プロファイルROVINGEDGE1を使用します。

[DEFAULT]
user=user_ocid
fingerprint=your_fingerprint
key_file=path_to_home_directory/.oci/oci_api_key.pem
tenancy=tenancy_ocid
region=region_name
[ROVINGEDGE1]
user=user_ocid_from_RED_console_UI
fingerprint=your_fingerprint_generated_after_uploading_the_public_key
key_file=path_to_home_directory/.oci/oci_api_key.pem
tenancy=tenancy_ocid_from_curl_command_or_web_browser
region=region_name
 
Example:
[DEFAULT]
user=ocid1.user.oc1..uniqueID
fingerprint=10:00:00:db:dd:c4:de:71:a1:01:10:88:f9:95:1e:23
tenancy=ocid1.tenancy.oc1..uniqueID
region=us-ashburn-1
key_file=/Users/username/.oci/oci_api_key.pem
[ROVINGEDGE1]
user=ocid1.user.orei..uniqueID
fingerprint=10:00:00:db:dd:c4:de:71:a1:01:10:88:f9:95:1e:23
tenancy=ocid1.tenancy.orei..uniqueID
region=us-ashburn-1
key_file=/Users/username/.oci/oci_api_key.pem
ノート

すべてのRoving Edge Infrastructure OCIDSには、文字列oreiが含まれます。

デフォルト以外のプロファイル名を使用している場合は、すべての CLIコマンドに --profile profile_nameオプションを含めます。この例では、ROVINGEDGE1プロファイルを使用するには、CLI構文に--profile ROVINGEDGE1を含める必要があります。次の項「OCI CLI RCファイルの設定」では、この要件を排除するオプションの方法について説明します。

各Roving Edge Infrastructureデバイスには、独自のプロファイルが必要です。ROVINGEDGEなどのベース名を選択し、デバイスごとに番号を増分します。例: ROVINGEDGE1

OCI CLI RCファイルの設定

Oracleでは、Roving Edge Infrastructureデバイスを使用する場合は、オプションのOCI CLI RCファイルを設定することを強くお薦めします。OCI CLI RCファイルを設定すると、すべてのCLIコマンドに--profile profile_nameオプションを含める必要がなくなるため、CLIコマンドの実行が容易になります。

OCI CLI RCファイルは、configファイルのプロファイル・セットと一致する必要があります。configファイルでDEFAULTプロファイルを使用している場合、OCI CLI RCファイルでもDEFAULTが使用されます。ROVINGEDGE1など、別の名前のプロファイルを作成した場合は、OCI CLI RCファイルにROVINGEDGE1プロファイルを使用します。

OCI CLI RCファイルを設定する前に、次のタスクを実行して次の情報を取得します:

  • 証明書バンドルを作成します。

    PEMキーの生成場所に戻り、次のコマンドを実行します。

    echo -n | openssl s_client -showcerts -connect ip_address:8015|sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > bundle.pem

    3つの証明書を持つファイルが.ociディレクトリに作成されます。将来使用するためにパスを記録します。

  • .ociディレクトリに、次の内容を含むoci_cli_rcというファイルを作成します:

    [DEFAULT]
    # Specifies cert bundle to use
    cert-bundle = path_to_bundle/.oci/bundle.pem
    # Specifies default compartment id so it doesn't have to be set as env variable or on CLI
    compartment-id = tenancy_ocid_used_in_config_file
    # Defines endpoint to use for compute
    compute.endpoint = https://otec-console-local:19060
    # Defines endpoint to use for object storage
    os.endpoint = https://otec-console-local:8019
    # Defines namespace
    os.namespace = rover-namespace
    # Defines endpoint to use for IAM
    iam.endpoint = https://otec-console-local:12050
    # Defined endpoint for block
    bv.endpoint = https://otec-console-local:5012
    # Defined endpoint for VCN 18336
    network.endpoint = https://otec-console-local:18336

oci_cli_rcファイルがすでにDEFAULTエントリで構成されている場合は、configファイルで使用されている名前と一致します。別のプロファイル名(ROVINGEDGE1など)を使用する場合、oci_cli_rcファイルにはその名前が含まれます。例:

[DEFAULT]
# Defines OCI Tenancy object namespace
os.namespace = idbcq3arv1py
[ROVINGEDGE1]
# Specifies cert bundle to use
cert-bundle = /Users/username/.oci/bundle.pem
# Specifies default compartment id so it doesn't have to be set as env variable or on CLI
compartment-id = ocid1.tenancy.orei..uniqueID
# Defines Roving Edge endpoint to use for compute
compute.endpoint = https://otec-console-local:19060
# Defines Roving Edge endpoint to use for object storage
os.endpoint = https://otec-console-local:8019
# Defines Roving Edge object namespace
os.namespace = rover-namespace
# Defines Roving Edge endpoint to use for IAM
iam.endpoint = https://otec-console-local:12050
# Defined Roving Edge endpoint for block
bv.endpoint = https://otec-console-local:5012
# Defined Roving Edge endpoint for VCN 18336
network.endpoint = https://otec-console-local:18336

CLIの使用

次のコマンドを使用してCLIオプションを指定できます:

  • --option value

    または

  • --option=value

OCI CLI RCファイルを使用しない

oci_cli_rcファイルを使用しない場合、Roving Edge Infrastructureの基本的なCLI構文は次のとおりです:

oci resource action options --endpoint resource_endpoint --compartment-id Roving_Edge_tenancy_ocid_used_in_config_file --cert-bundle path_to_cert bundle

この構文に次のように適用します:

  • ociは、短縮されたCLIコマンド名です

  • os bucketは、resourceの例です

  • createは、actionの例です

  • その他の文字列は、optionsです

リソース・エンドポイントは次のとおりです。

  • オブジェクト・ストレージ: https://otec-console-local:8019

    オブジェクト・ストレージのコマンドには、--namespace rover-namespaceオプションも含める必要があります。

  • コンピュート: https://otec-console-local:19060

  • ブロック・ストレージ: https://otec-console-local:5012

  • IAM: https://otec-console-local:12050

  • ネットワーク: https://otec-console-local:18336

  • データ同期: https://otec-console-local:21060

  • システム・アップグレード: https://otec-console-local:23060

  • イベント: https://otec-console-local:18000
  • モニタリング: https://otec-console-local:22060
  • 診断ツール: https://otec-console-local:31060

oci_cli_rcファイル機能を使用するには、/etc/hostsファイルにIP address行エントリの値otec-console-localを含めます。

Oracle Cloud Infrastructure証明書を使用している場合、リソース・エンドポイントは次のとおりです:

Ex: DNS:*.commonname.com

  • オブジェクト・ストレージ: https://rover.commonname.com:8019

    オブジェクト・ストレージのコマンドには、--namespace rover-namespaceオプションも含める必要があります。

  • コンピュート: https://rover.commonname.com:19060

  • ブロック・ストレージ: https://rover.commonname.com:5012

  • IAM: https://rover.commonname.com:12050

  • ネットワーク: https://rover.commonname.com:18336

  • データ同期: https://rover.commonname.com:21060

  • システム・アップグレード: https://rover.commonname.com:23060

  • イベント: https://rover.commonname.com:18000

  • モニタリング: https://rover.commonname.com:22060

  • 診断ツール: https://rover.commonname.com:31060

ノート

デバイス証明書が自己署名の場合、oci_cli_rcファイル機能を使用するには、/etc/hostsファイルにIPアドレス行エントリの値otec-console-localを含めます。

次に、CLIコマンドの例を示します。

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID --endpoint https://otec-console-local:8019 --cert-bundle /Users/username/.oci/bundle.pem

Roving Edge Infrastructure環境のconfigファイル・エントリがDEFAULTでない場合は、CLI構文に--profile profile_nameオプションを含めます。例:

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID --endpoint https://otec-console-local:8019 --cert-bundle /Users/username/.oci/bundle.pem --profile ROVINGEDGE1
ノート

表示名の一部として機密情報は入力しないでください。

OCI CLI RCファイルの使用

the oci_cli_rcファイルを使用している場合、Roving Edge Infrastructureの基本的なCLI構文は次のとおりです:

oci resource action options

この構文に次のように適用します:

  • ociは、短縮されたCLIコマンド名です

  • os bucketは、resourceの例です

  • listは、actionの例です。

  • その他の文字列は、optionsです

次のコマンドラインの例は、指定されたコンパートメント内のバケットをリストするための一般的なCLIコマンド構成を示しています:

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID

Roving Edge Infrastructure環境のconfigファイル・エントリがDEFAULTでない場合は、CLI構文に--profile profile_nameオプションも含める必要があります。例:

oci os bucket list --compartment-id ocid1.tenancy.orei..uniqueID --endpoint https://otec-console-local:8019 --cert-bundle /Users/username/.oci/bundle.pem --profile ROVINGEDGE1

必須パラメータとオプション・パラメータ

ほとんどのコマンドライン・ユーティリティは、コマンドに含めるパラメータに必須パラメータとオプション・パラメータの両方があります。必須パラメータは、次のようにコマンドの構文に含めます:

oci os bucket create --name name [OPTIONS]

必須パラメータ値が変数(nameなど)としてリストされている場合は、値を指定する必要があります。ドキュメントに示されているようにコマンドを入力します。

コマンド構文に[OPTIONS]が含まれている場合は、オプションのパラメータを示しています。オプションのパラメータとその使用方法の一覧については、CLIのオンライン・ヘルプにアクセスしてください。

VMインスタンスでのCLIの実行

Roving Edge Infrastructureデバイスによってホストされるコンピュート・インスタンスでCLIを実行するには、次のガイドラインに従います。

ノート

このトピックの手順は、Oracle Linuxホスト・コンピュータ用です。

  • VMが次のローカルIPを経由するようにします。

    169.254.169.254

  • VMでRoving Edge Infrastructureデバイスをotec-console-localと呼びます。

  • 次のIP表ルールを使用します。

    { for i in 19060 8019 12050 21060 22060 23060 22060 12060;do iptables -I 
    BareMetalInstanceServices -d 169.254.169.254/32 -p tcp -m tcp --dport $i -m 
    comment --comment "Rover service access port" -j ACCEPT;done }

    使用可能なポートのリストについては、サービス・ポートを参照してください。

サポートされていないCLIコマンド

次のCLIコマンドは、現在サポートされていません。回避策は、使用可能な場合に示されています。

  • オブジェクト・ストレージCLI: oci os list

    oci os listコマンドは、--fieldsオプションを含める場合にのみ使用できます。例:

    # oci os object list --bucket-name generic-image --fields name,size,timeCreated,md5,etag
    {
    "data": [
    {
    "archival-state": null,
    "etag": "b2c123ff0f1231c4c7f41ff92294e4a0-32",
    "md5": "ssYx/w8SUcTH9B/5IpTkoA==-32",
    "name": "exported-image",
    "size": 2132357120,
    "storage-tier": null,
    "time-created": "2022-03-01T19:50:03.076000+00:00",
    "time-modified": null
    },    {
          "archival-state": null,
          "etag": "fe5e3c12e12e31de65b86722a6fe29e7-32",
          "md5": "/l48AOleMd5luGcipv4p5w==-32",
          "name": "imported-image-20210830-1542_ocid1.image.oc1.iad..uniqueID.oci",
          "size": 2132224000,
          "storage-tier": null,
          "time-created": "2022-03-01T19:50:59.968000+00:00",
          "time-modified": null
        }
      ],
      "prefixes": []
    }
  • コンピュートCLI: oci compute instance list-vnics

    oci compute instance list-vnicsコマンドは、指定されたインスタンスにアタッチされ、コンピュート・ノードのパブリックIPを取得するために使用されることが多いVNICをリストします。このCLIは、現在Roving Edge Infrastructureではサポートされていません。次のいずれかの方法を使用して、計算ノードにアタッチされたVNICに関連付けられたIPアドレスなどのVNIC情報を取得できます:

    • デバイスコンソール: 次の場所に移動します。

      「コンピュート」>「インスタンス」>「インスタンスの詳細」>「アタッチされたVNIC」

      表示されるダイアログボックスに、VNICのIPアドレスが表示されます。

    • CLI: oci compute instance list-vnics

      まず、次のコマンドを実行して、すべてのVNICのアタッチメントをリストします:

      oci compute vnic-attachment list --instance-id <> --all

      次に、詳細を取得する特定のVNICに対して次のコマンドを実行します:

      oci network vnic get --vnic-id <>

      次の例は、これらの2つのコマンドがそれぞれの戻り値とともに実行されることを示しています。

      # oci compute vnic-attachment list --instance-id ocid1.instance.orei.orei-1..uniqueID --all
      {
        "data": [
          {
            "availability-domain": "orei-1-ad-1",
            "compartment-id": "ocid1.tenancy.orei..uniqueID",
            "display-name": null,
            "id": "ocid1.vnicattachment.orei.orei-1..uniqueID",
            "instance-id": "ocid1.instance.orei.orei-1..uniqueID",
            "lifecycle-state": "ATTACHED",
            "nic-index": 0,
            "subnet-id": "ocid1.subnet.orei.orei-1..uniqueID",
            "time-created": "2022-03-01T21:07:00.937000+00:00",
            "vlan-id": null,
            "vlan-tag": 1,
            "vnic-id": "ocid1.vnic.orei.orei-1..uniqueID"
          }
        ]
      }
      
      # oci network vnic get --vnic-id ocid1.vnic.orei.orei-1..uniqueID
      {
        "data": {
          "availability-domain": "orei-1-ad-1",
          "compartment-id": "ocid1.tenancy.orei..uniqueID",
          "defined-tags": {},
          "display-name": "test-instance",
          "freeform-tags": {},
          "hostname-label": "test-instance",
          "id": "ocid1.vnic.orei.orei-1..uniqueID",
          "is-primary": true,
          "lifecycle-state": "AVAILABLE",
          "mac-address": "02:00:17:00:04:00",
          "nsg-ids": [],
          "private-ip": "10.0.0.2",
          "public-ip": "10.145.142.128",
          "skip-source-dest-check": false,
          "subnet-id": "ocid1.subnet.orei.orei-1..",
          "time-created": "2022-03-01T21:07:00.155000+00:00",
          "vlan-id": null
        },
        "etag": "2c082d1c"
      }

      アタッチされているVNICが1つのみの場合は、次のコマンドを使用して、これらのCLIコマンドを他のLinuxツールと組み合せて、出力をパブリックIPアドレスのみに制限できます:

      oci compute vnic-attachment list --instance-id <> --all|grep -m 1 vnic-id|awk -F'"' '{print $4}'|xargs -I{} oci network vnic get --vnic-id {}|grep public-ip|awk -F'"' '{print $4}'
      

      例:

      # oci compute vnic-attachment list --instance-id ocid1.instance.orei.orei-1..uniqueID --all|grep -m 1 vnic-id|awk -F'"' '{print $4}'|xargs -I{} oci network vnic get --vnic-id {}|grep public-ip|awk -F'"' '{print $4}'
      10.145.142.128

コマンドライン・インタフェースのヘルプへのアクセス

すべてのCLIのヘルプ・コマンドには、コマンドラインからアクセスできるヘルプ・コンポーネントが関連付けられています。ヘルプを表示するには、コマンドの後に--helpまたは-hオプションを入力します。例:

oci os bucket --help