Metadaten aus einer Instanz abrufen
In den meisten Fällen möchten Sie Metadaten von einer laufenden Instanz sammeln und sie zum Booten einer anderen virtuellen Serverinstanz verwenden. In anderen Fällen müssen Sie vielleicht Informationen über Netzwerkanhänge oder Volumenanhänge sammeln. Überprüfen Sie die allgemeine Vorgehensweise und die schrittweisen Anweisungen zur Aktivierung des Zugriffs auf den Metadatendienst, zur Erstellung eines Identitätszugriffstokens und zum Abrufen der Metadaten.
Allgemeines Verfahren zum Zugriff auf die Metadaten der Instanz
Tabelle 1 beschreibt die Schritte, die beim Zugriff auf Metadaten erforderlich sind. Die Informationen enthalten den Kontext für jeden Schritt und Links zu speziellen Informationen zur Ausführung des Schritts. In einer realen Umgebung würden die Schritte 3 bis 5 höchstwahrscheinlich beim Systemstart von der Initialisierungssoftware Ihrer Instanz oder mithilfe von cloud-init ausgeführt werden.
| Schritt | Kontext | Aufgerufener Service | Benutzeraktion |
|---|---|---|---|
| 1 | IBM Cloud | VPC-Benutzerschnittstelle, CLI, API | Der Zugriff auf den Metadatendienst ist standardmäßig deaktiviert. Sie können den Zugriff auf den Metadatendienst für eine vorhandene Instanz in der Konsole, über die Befehlszeilenschnittstelle oder über die API aktivieren. |
| 2 | IBM Cloud |
|
Melden Sie sich mithilfe der üblichen Startvorgänge bei der Instanz an. |
| 3 | VPC-Instanz | Metadatenservice | Führen Sie einen Befehl curl aus, um den Metadaten-Token-Dienst aufzurufen und ein Identitätszugriffstoken zu erhalten. |
| 4 | VPC-Instanz | Metadatenservice | Führen Sie einen curl-Befehl aus, um den Metadatendienst aufzurufen und Instanzinformationen abzurufen. Das Token aus dem vorherigen Schritt wird übergeben und die Metadaten
werden zurückgegeben. |
| 5 | VPC-Instanz |
|
Analysieren Sie den im vorherigen Schritt zurückgegebenen JSON-Code, um die Benutzerdaten zu erhalten. |
Durchgängiges Verfahren für den Zugriff auf Metadaten aus einer Instanz heraus
Lokalisierung der laufenden Instanz und Aktivierung des Zugriffs auf den Metadatendienst in der Konsole
-
Klicken Sie in der Konsole IBM Cloud auf das
Navigation > Infrastruktur
> Compute > Virtuelle Serverinstanzen.
-
Suchen Sie die laufende Instanz in der Liste. Klicken Sie auf den Namen der Instanz, um deren Details anzuzeigen. Blättern Sie auf der Registerkarte Übersicht zu den erweiterten Konfigurationsdetails und klicken Sie auf das Kästchen, um den Zugriff auf den Metadatendienst zuzulassen.
-
Wenn die Instanz bereits eine freie IP-Adresse hat (auf der Registerkarte Networking angezeigt), verwenden Sie diese Adresse, um eine sichere Verbindung zum Server herzustellen. Wenn er keine freie IP-Adresse hat, weisen Sie ihm eine zu. Weitere Informationen finden Sie unter Nächste Schritte im Thema Erstellen von virtuellen Serverinstanzen.
Auffinden der laufenden Instanz und Aktivierung des Zugriffs auf den Metadatendienst über die CLI
-
Melden Sie sich bei der IBM Cloud-CLI an.
-
Suchen Sie die laufende Instanz, indem Sie den Befehl
ibmcloud is instancesverwenden, der die verfügbaren Instanzen in der Region auflistet.$ 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 - - - -Der Metadatenservice wird bei allen Archivimages und angepassten Images sowie CPU-Profilen unterstützt.
-
Führen Sie den Befehl
ibmcloud is instanceaus, um zu überprüfen, ob der Zugriff auf den Metadatendienst aktiviert ist. Das folgende Beispiel zeigt den Wertfalse.$ 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 -
Aktivieren Sie den Zugriff auf den Metadatendienst, indem Sie den Befehl
ibmcloud is instance-updatemit der Option--metadata-service trueausführen.$ 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 -
Wenn die Instanz bereits eine freie IP-Adresse hat, verwenden Sie diese Adresse, um eine sichere Verbindung zum Server herzustellen. Wenn er keine freie IP-Adresse hat, weisen Sie ihm eine zu. Weitere Informationen finden Sie unter Nächste Schritte im Thema Erstellen von virtuellen Serverinstanzen.
Auffinden der laufenden Instanz und Ermöglichen des Zugriffs auf den Metadatendienst über die API
-
Suchen Sie die laufende Instanz durch Auflistung der verfügbaren Instanzen in der Region. Wählen Sie die Instanz-ID aus der Antwort aus.
curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token" -
Rufen Sie die Informationen der ausgewählten Instanz ab, um zu überprüfen, ob der Zugriff auf den Metadatendienst aktiviert ist.
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"Die API-Antwort zeigt
"enabled": falseim Abschnittmetadata_servicean.{ "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 } . . . } -
Ermöglichen Sie den Zugriff auf den Metadatendienst, indem Sie eine
PATCH /instancesanfrage für die Instanz.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 } }` -
Wenn die Instanz bereits eine freie IP-Adresse hat, verwenden Sie diese Adresse, um eine sichere Verbindung zum Server herzustellen. Wenn er keine freie IP-Adresse hat, weisen Sie ihm eine zu. Weitere Informationen finden Sie unter Anmeldung bei Ihrer Instanz.
Herstellen einer sicheren Verbindung zur virtuellen Serverinstanz
Linux
Das folgende Beispiel zeigt die Befehlssyntax für die Verbindung mit einer Linux-basierten Serverinstanz.
ssh -i <path to your private key file> <default-user-account>@<floating ip address>
Windows
Windows-Benutzer müssen zusätzliche Voraussetzungen erfüllen, um auf den Metadatendienst zugreifen und diesen nutzen zu können. Weitere Informationen finden Sie unter Einrichten von Windows-Servern für die Nutzung des Metadaten-Dienstes.
Wenn Ihr Server mit einem Windows-Betriebssystem läuft, verwenden Sie einen RDP-Client, um sich mit ihm zu verbinden.
Weitere Informationen finden Sie unter Verbindung zu Linux-Instanz herstellen oder Verbindung zu Windows-Instanz herstellen.
Sammeln von Informationen aus dem Metadatendienst
Stellen Sie von der virtuellen Serverinstanz eine Anfrage an die Identitäts-API, um ein Identitäts-Token abzurufen. Geben Sie an, wie lange das Token gültig bleiben soll. Sie können zum Beispiel 3600 Sekunden (1 Stunde) angeben.
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)'`
Die Antwort enthält das Identitätszugriffstoken. Der Parser speichert sie in der Datei .access_token.
Im Beispiel wird jq als Parser verwendet, ein Drittanbietertool, das unter der MIT-Lizenz lizenziert wird. Einige Betriebssysteme enthalten dies standardmäßig jq nicht. Installieren Sie diese vor jq der Verwendung oder verwenden Sie einen anderen JSON-Parser.
Abrufen der Initialisierungsinformationen
Nachdem Sie Ihr Identitäts-Token erhalten haben, können Sie nun eine API-Anfrage an den Metadatendienst stellen, um die Initialisierungsinformationen zu sammeln:
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
Die API-Antwort enthält Informationen wie den SSH-Schlüssel und die Benutzerdaten, die bei der Bereitstellung des virtuellen Servers angegeben wurden. Wenn Sie Kennwörter konfiguriert haben, werden diese Informationen ebenfalls zurückgegeben. Sie können diese Informationen verwenden, um eine neue virtuelle Serverinstanz zu booten.
Abrufen von Instanzinformationen
Senden Sie eine Anfrage GET "/metadata/v1/instance", um detaillierte Informationen zur Instanz abzurufen.
curl -X GET "$vpc_metadata_api_endpoint/metadata/v1/instance?version=2025-04-22" -H "Authorization: Bearer $identity_token"
In der Antwort werden alle Details für eine Instanz aufgelistet, einschließlich Netzschnittstellen, Rechenprofil und Datenträgerzuordnungen.
{
"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"
}
}
- Verwenden Sie andere API-Methoden, um weitere Informationen über die Instanz abzurufen, z. B. Volume- und Netzwerkanhänge, oder sammeln Sie Informationen über SSH-Schlüssel, Platzierungsgruppen oder virtuelle Netzwerkschnittstellen. Weitere Informationen finden Sie in der API-Referenz zum Metadatendienst und in der Zusammenfassung der Informationen zum Metadatendienst.
Die folgende Tabelle zeigt weitere Methoden für API-GET-Anfragen, die Sie durchführen können, um spezifische Informationen über die Instanz zu erhalten.
| API-Endpunkt | Beschreibung |
|---|---|
/metadata/v1/instance/cluster_network_attachments |
Liste der Clusternetz-Anlagen |
/metadata/v1/instance/cluster_network_attachments/{id} |
Cluster-Netzwerkverbindung abrufen |
/metadata/v1/instance/network_attachments |
Netzwerkanhänge auflisten |
/metadata/v1/instance/network_attachments/{id} |
Abrufen einer Netzwerkanlage |
/metadata/v1/instance/network_interfaces |
Listet Metadaten für alle Netzschnittstellen einer Instanz auf. |
/metadata/v1/instance/network_interfaces/{id} |
Ruft Metadaten für eine Netzschnittstelle nach der ID ab. |
/metadata/v1/instance/software_attachments |
Metadaten aller Software-Anhänge einer Instanz auflisten. |
/metadata/v1/instance/software_attachments/{id} |
Metadaten für einen Software-Anhang anhand der ID abrufen. |
/metadata/v1/instance/volume_attachments |
Listet Metadaten für alle Datenträgerzuordnungen einer Instanz auf. |
/metadata/v1/instance/volume_attachment/{id} |
Ruft Metadaten für eine Datenträgerzuordnung nach der ID ab. |
Nächste Schritte
Verwenden Sie das vertrauenswürdige Profil für die Instanz und generieren Sie ein IAM-Token aus dem Identitätszugriffstoken für andere IAM-fähige Dienste. Weitere Informationen finden Sie unter IAM-fähige Services mit einem vertrauenswürdigen Profil aufrufen.