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のオンライン・ヘルプにアクセスしてください。
CLIのインストール
CLIのインストールおよび構成の詳細は、Oracle Cloud Infrastructureドキュメントのコマンドライン・インタフェース(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を取得します:
-
デバイスノードのデバイスコンソールにアクセスします。
-
ナビゲーション・メニューを開き、「アイデンティティ管理」→「ユーザー」を選択します。
ユーザー・ページが表示されます。すべてのユーザーが表形式でリストされます。
-
詳細を取得するユーザーをクリックします。ユーザーの「詳細」ページが表示されます。
-
「詳細」ページの「ユーザー情報」でOCID行を検索し、リンクをコピーしてこの情報を保存します。
IAMユーザーWebページは、PEM形式で公開キーをアップロードするために必要なときに開いたままにします。
-
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 (user
やtenancy
など)には、値に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