インスタンスからメタデータを取得する
多くの場合、実行中のインスタンスからメタデータを収集し、それを使用して別の仮想サーバーインスタンスを起動します。 また、ネットワーク添付ファイルやボリューム添付ファイルに関する情報を収集する必要がある場合もある。 メタデータ・サービスへのアクセスを有効化し、ID アクセストークンを作成し、メタデータを取得するための一般的な手順とステップバイステップの説明を確認します。
インスタンスのメタデータにアクセスする一般的な手順
表1に、メタデータにアクセスする際の手順を示す。 この情報では、各ステップのコンテキスト、およびステップを完了するための特定の情報へのリンクを提供します。 実際の環境では、手順 3 ~ 5 は、起動時にインスタンスの初期化ソフトウェアによって、あるいは cloud-init を使用して実行される可能性が高いでしょう。
| 手順 | context | 呼び出されるサービス | ユーザー・アクション |
|---|---|---|---|
| 1 | IBM Cloud | VPC UI、CLI、API | メタデータサービスへのアクセスは、デフォルトでは無効になっています。 コンソール、CLI、またはAPIを使用して、既存のインスタンスのメタデータ・サービスへのアクセスを有効にできます。 |
| 2 | IBM Cloud |
|
通常の起動手順に従って、インスタンスにサインオンしてください。 |
| 3 | VPC インスタンス | メタデータ・サービス | curl コマンドを実行して、メタデータ・トークン・サービスを呼び出し、 IDアクセストークンを取得します。 |
| 4 | VPC インスタンス | メタデータ・サービス | curl コマンドを実行してメタデータ・サービスを呼び出し、 インスタンス情報を取得する。 前のステップで取得したトークンが渡され、メタデータが返されます。 |
| 5 | VPC インスタンス |
|
前のステップで返された JSON を解析して、ユーザー・データを取得します。 |
インスタンスからメタデータにアクセスするためのエンドツーエンドの手順
実行中のインスタンスを特定し、コンソールでメタデータ・サービスへのアクセスを有効にする
-
IBM Cloud コンソールで、 Navigation メニューアイコン
> Infrastructure
> Compute > Virtual server instances をクリックします。
-
実行中のインスタンスをリストで探す。 インスタンス名をクリックすると、その詳細が表示されます。 概要」タブで「 詳細設定」の詳細までスクロールし、メタデータ・サービスへのアクセスを許可するトグルをクリックする。
-
インスタンスがすでにフローティングIPアドレスを持っている場合([Networking]タブに表示)、そのアドレスを使用してサーバーへのセキュアな接続を確立します。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、仮想サーバーインスタンスの作成トピックの 次の 手順を参照してください。
実行中のインスタンスを特定し、CLIからメタデータ・サービスにアクセスできるようにする
-
IBM Cloud CLI にログインします。
-
実行中のインスタンスを見つけるには、
ibmcloud is instancesコマンドを使用します。このコマンドは、リージョン内で利用可能なインスタンスを一覧表示します。$ ibmcloud is instances Listing instances in all resource groups and region us-south under account Test Account as user test.user@ibm.com... ID Name Status Reserved IP Floating IP Profile Image VPC Zone Confidential Compute Mode Enable Secure Boot Resource group Reservation Name Cluster Network ID Cluster Network Name Cluster Network Attachments 0717_9c55d9d2-0685-4300-b475-49eb1b8c1faf my-virtual-server-1 running 10.240.0.6 - bx2-2x8 ibm-ubuntu-24-04-2-minimal-amd64-1 my-test-vpc us-south-1 disabled false defaults - - - - 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 my-virtual-server-2 running 10.240.64.11 169.47.94.48 bx2-2x8 ibm-ubuntu-24-04-6-minimal-amd64-3 my-test-vpc us-south-2 disabled false defaults - - - - 0727_d7ff31ef-75ed-42c6-b0fb-a5837a63d722 my-virtual-server-3 running 10.240.64.12 52.116.204.232 bx2-2x8 ibm-redhat-9-2-minimal-amd64-5 my-test-vpc us-south-2 disabled false defaults - - - -メタデータ・サービスは、すべてのストック・イメージ、カスタム・イメージ、および CPU プロファイルでサポートされます。
-
ibmcloud is instanceコマンドを実行し、メタデータ・サービスへのアクセスが有効かどうかを確認する。 次の例では、値falseを示している。$ ibmcloud is instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Getting instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com... ID 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Name my-virtual-server-2 CRN crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Status running Availability policy on host failure restart Confidential Compute Mode disabled Enable Secure Boot false Startable true Profile bx2-2x8 Architecture amd64 vCPU Manufacturer intel vCPUs 2 Memory(GiB) 8 Bandwidth(Mbps) 4000 Volume bandwidth(Mbps) 1000 Network bandwidth(Mbps) 3000 Lifecycle Reasons Code Message - - Lifecycle State stable Metadata service Enabled Protocol Response hop limit false http 1 Image ID Name r006-aa2af291-45b3-4f18-801c-8b7985e928f7 ibm-ubuntu-24-04-6-minimal-amd64-3 Numa Count 1 VPC ID Name r006-01030e3c-2663-4f7d-ac55-651929dafe37 my-test-vpc Zone us-south-2 Resource group ID Name 6edefe513d934fdd872e78ee6a8e73ef defaults Created 2025-03-06T19:24:02+00:00 Network Attachments Interface Name ID Subnet Subnet ID Floating IP VNI Reserved IP Primary eth0 0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea my-subnet-01 0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5 169.47.94.48 0727-dda9244a-64b9-421b-87e9-70549a70b4c3 10.240.64.11 Boot volume ID Name Attachment ID Attachment name r006-9afd6e01-0466-4e7b-a38b-75bf39469a42 eat-client-poc-boot-1741289020000 0727-241f39a8-3573-4ebc-b512-33508eb970c9 undaunted-starved-slander-galleria Reservation Affinity Policy automatic Reservation Affinity Pool - Reservation - Health State ok -
メタデータ・サービスへのアクセスを有効にするには、
ibmcloud is instance-updateコマンドにオプション--metadata-service trueを付けて実行します。$ ibmcloud is instance-update 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 --metadata-service true Updating instance 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 under account Test Account as user test.user@ibm.com... ID 0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Name my-virtual-server-2 CRN crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6 Status running Availability policy on host failure restart Confidential Compute Mode disabled Enable Secure Boot false Startable true Profile bx2-2x8 Architecture amd64 vCPU Manufacturer intel vCPUs 2 Memory(GiB) 8 Bandwidth(Mbps) 4000 Volume bandwidth(Mbps) 1000 Network bandwidth(Mbps) 3000 Lifecycle Reasons Code Message - - Lifecycle State stable Metadata service Enabled Protocol Response hop limit true http 1 Image ID Name r006-aa2af291-45b3-4f18-801c-8b7985e928f7 ibm-ubuntu-24-04-6-minimal-amd64-3 Numa Count 1 VPC ID Name r006-01030e3c-2663-4f7d-ac55-651929dafe37 my-test-vpc Zone us-south-2 Resource group ID Name 6edefe513d934fdd872e78ee6a8e73ef defaults Created 2025-03-06T19:24:02+00:00 Network Attachments Interface Name ID Subnet Subnet ID Floating IP VNI Reserved IP Primary eth0 0727-a3ff4d3e-be95-4a52-8025-b55b3c3285ea my-subnet-01 0727-f24237f5-bdf0-4b94-ab4c-167a44b8bcb5 169.47.94.48 0727-dda9244a-64b9-421b-87e9-70549a70b4c3 10.240.64.11 Boot volume ID Name Attachment ID Attachment name r006-9afd6e01-0466-4e7b-a38b-75bf39469a42 eat-client-poc-boot-1741289020000 0727-241f39a8-3573-4ebc-b512-33508eb970c9 undaunted-starved-slander-galleria Reservation Affinity Policy automatic Reservation Affinity Pool - Reservation - Health State ok -
インスタンスがすでにフローティングIPアドレスを持っている場合は、そのアドレスを使用してサーバーへのセキュアな接続を確立する。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、仮想サーバーインスタンスの作成トピックの 次の 手順を参照してください。
実行中のインスタンスを特定し、APIを使用してメタデータ・サービスへのアクセスを有効にする
-
リージョン内で 利用可能なインスタンスをリストアップして、実行中のインスタンスを見つけます。 レスポンスからインスタンスIDを選択する。
curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token" -
選択したインスタンスの情報を取得 し、メタデータ・サービスへのアクセスが有効かどうかを確認する。
curl -X GET "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"APIレスポンスには、
metadata_serviceセクションに"enabled": falseと表示されている。{ "availability_policy": { "host_failure": "restart", "host_maintenance": null }, "bandwidth": 4000, "boot_volume_attachment": { "device": { "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9-mzpzd" }, "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6/volume_attachments/0727-241f39a8-3573-4ebc-b512-33508eb970c9", "id": "0727-241f39a8-3573-4ebc-b512-33508eb970c9", "name": "undaunted-starved-slander-galleria", "volume": { "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::volume:r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "id": "r006-9afd6e01-0466-4e7b-a38b-75bf39469a42", "name": "eat-client-poc-boot-1741289020000", "resource_type": "volume" } }, "confidential_compute_mode": "disabled", "created_at": "2025-03-06T19:24:02.000Z", "crn": "crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance:0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "disks": [], "enable_secure_boot": false, "health_reasons": [], "health_state": "ok", "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "id": "0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6", "image": { "crn": "crn:v1:bluemix:public:is:us-south:a/a1234567::image:r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "href": "https://us-south.iaas.cloud.ibm.com/v1/images/r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "id": "r006-aa2af291-45b3-4f18-801c-8b7985e928f7", "name": "ibm-ubuntu-24-04-6-minimal-amd64-3", "resource_type": "image" }, "lifecycle_reasons": [], "lifecycle_state": "stable", "memory": 8, "metadata_service": { "enabled": false, "protocol": "http", "response_hop_limit": 1 } . . . } -
インスタンスへのリクエストを行うことで、メタデータ・サービスへのアクセスを有効にする。
PATCH /instancesインスタンスにリクエストすることで、メタデータ・サービスへのアクセスを有効にします。curl -X PATCH "$vpc_api_endpoint/v1/instances/0727_ed12480a-40a4-41a0-98e3-6dfac8b25ad6?version=2025-05-13&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "metadata_service": { "enabled": true, "protocol": "http", "response_hop_limit": 1 } }` -
インスタンスがすでにフローティングIPアドレスを持っている場合は、そのアドレスを使用してサーバーへのセキュアな接続を確立する。 フローティングIPアドレスがない場合は、割り当ててください。 詳細については、 インスタンスへのログインを 参照してください。
仮想サーバーインスタンスへのセキュアな接続の確立
Linux
次の例は、 Linux-ベースのサーバー・インスタンスに接続するために使用するコマンド構文を示している。
ssh -i <path to your private key file> <default-user-account>@<floating ip address>
Windows
Windows ユーザーは、メタデータ サービスにアクセスして利用するために、追加の要件があります。 詳細については、「 メタデータサービスを使用するための Windows サーバーの設定」を 参照してください。
サーバーがWindows OSを実行している場合は、RDPクライアントを使用して接続する。
詳しくは、Linux インスタンスへの接続または Windows インスタンスへの接続を参照してください。
メタデータ・サービスからの情報収集
仮想サーバーインスタンスから ID API にリクエストを行い、ID トークンを取得します。 トークンの有効期間を指定します。 例えば、3600秒(1時間)を指定することができる。
export identity_token=`curl -X PUT "http://api.metadata.cloud.ibm.com/identity/v1/token?version=2022-03-01"\
-H "Metadata-Flavor: ibm"\
-H "Accept: application/json"\
-d '{
"expires_in": 3600
}' | jq -r '(.access_token)'`
応答は ID アクセストークンを提供する。 パーサーはそれを .access_token ファイルに保存する。
この例では、パーサーとして jq (MIT license でライセンス交付を受けるサード・パーティーのツール) を使用します。 一部のオペレーティングシステムでは、デフォルトで jq が含まれていません。 使用前に jq をインストールするか、別の JSON
パーサーに置き換えてください。
初期化情報の取得
IDトークンを取得したら、今度はメタデータ・サービスにAPIリクエストを行い、初期化情報を収集することができる:
curl -X GET "http://api.metadata.cloud.ibm.com/metadata/v1/instance/initialization?version=2024-11-12"\
-H "Accept: application/json"\
-H "Authorization: Bearer $identity_token"\
| jq -r
API レスポンスには、仮想サーバーのプロビジョニング時に指定した SSH キーやユーザーデータなどの情報が含まれます。 パスワードを構成した場合は、その情報も返されます。 この情報を使用して、新しい仮想サーバー・インスタンスをブートストラップできます。
インスタンス情報の取得
GET "/metadata/v1/instance" リクエストを発行して、インスタンスに関する詳細情報を取得します。
curl -X GET "$vpc_metadata_api_endpoint/metadata/v1/instance?version=2025-04-22" -H "Authorization: Bearer $identity_token"
応答には、ネットワーク・インターフェース、コンピュート・プロファイル、ボリューム接続を含む、インスタンスに関するすべての詳細がリストされます。
{
"boot_volume_attachment": {
"id": "a8a15363-a6f7-4f01-af60-715e85b28141",
"name": "my-boot-volume-attachment",
"volume": {
"crn": "crn:[...]",
"id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
"name": "my-boot-volume"
}
},
"created_at": "2021-10-19T16:11:57Z",
"crn": "crn:[...]",
"disks": [],
"id": "eb1b7391-2ca2-4ab5-84a8-b92157a633b0",
"image": {
"crn": "crn:[...]",
"id": "9aaf3bcb-dcd7-4de7-bb60-24e39ff9d366",
"name": "my-image"
},
"memory": 8,
"name": "my-instance",
"network_interfaces": [
{
"id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
"name": "my-network-interface",
"primary_ipv4_address": "10.0.0.32",
"resource_type": "network_interface",
"subnet": {
"crn": "crn:[...]",
"id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
"name": "my-subnet",
"resource_type": "subnet"
}
}
],
"primary_network_interface": {
"id": "7ca88dfb-8962-469d-b1de-1dd56f4c3275",
"name": "my-network-interface",
"primary_ipv4_address": "10.0.0.32",
"resource_type": "network_interface",
"subnet": {
"crn": "crn:[...]",
"id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4",
"name": "my-subnet",
"resource_type": "subnet"
}
},
"profile": {
"name": "bx2-2x8"
},
"resource_type": "instance",
"vcpu": {
"architecture": "amd64",
"count": 2
},
"volume_attachments": [
{
"id": "a8a15363-a6f7-4f01-af60-715e85b28141",
"name": "my-boot-volume-attachment",
"volume": {
"crn": "crn:[...]",
"id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
"name": "my-boot-volume"
}
},
{
"id": "e77125cb-4df0-4988-a878-531ae0ae0b70",
"name": "my-volume-attachment-1",
"volume": {
"crn": "crn:[...]",
"id": "2cc091f5-4d46-48f3-99b7-3527ae3f4392",
"name": "my-data-volume"
}
}
],
"volume_bandwidth_qos_mode": "weighted",
"vpc": {
"crn": "crn:[...]",
"id": "f0aae929-7047-46d1-92e1-9102b07a7f6f",
"name": "my-vpc",
"resource_type": "vpc"
},
"zone": {
"name": "us-south-1"
}
}
- 他のAPIメソッドを使用して、ボリュームやネットワーク・アタッチメントなどのインスタンスに関する詳細情報を取得したり、SSHキー、配置グループ、仮想ネットワーク・インターフェースに関する情報を収集したりする。 詳細については、 メタデータ・サービスAPI リファレンスおよび メタデータ・サービス情報の 概要を参照のこと。
次の表は、インスタンスに関する特定の情報を取得するために実行できるAPI GETリクエストのメソッドをさらに示したものです。
| API エンドポイント | 説明 |
|---|---|
/metadata/v1/instance/cluster_network_attachments |
クラスターネットワークのアタッチメントを一覧表示 |
/metadata/v1/instance/cluster_network_attachments/{id} |
クラスタのネットワーク接続情報を取得する |
/metadata/v1/instance/network_attachments |
ネットワークの添付ファイルを一覧表示 |
/metadata/v1/instance/network_attachments/{id} |
ネットワーク添付ファイルの取得 |
/metadata/v1/instance/network_interfaces |
インスタンスのすべてのネットワーク・インターフェースのメタデータをリストします。 |
/metadata/v1/instance/network_interfaces/{id} |
ID ごとのネットワーク・インターフェースのメタデータを取得します。 |
/metadata/v1/instance/software_attachments |
インスタンスに添付されているすべてのソフトウェアのメタデータを一覧表示します。 |
/metadata/v1/instance/software_attachments/{id} |
ID に基づいて、ソフトウェア添付ファイルのメタデータを取得します。 |
/metadata/v1/instance/volume_attachments |
インスタンスのすべてのボリューム接続のメタデータをリストします。 |
/metadata/v1/instance/volume_attachment/{id} |
ID ごとのボリューム接続のメタデータを取得します。 |
次のステップ
インスタンスの信頼済みプロファイルを使用し、そのIDアクセストークンから、IAM対応の他のサービスへのIAMトークンを生成します。 トラステッド・プロファイルを使用した IAM 対応サービスの呼び出しを参照してください。