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.

Allgemeines Verfahren für den Zugriff auf Metadaten
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

  1. Klicken Sie in der Konsole IBM Cloud auf das Menüsymbol Navigation > Infrastruktur VPC > Compute > Virtuelle Serverinstanzen.

  2. 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.

  3. 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

  1. Melden Sie sich bei der IBM Cloud-CLI an.

  2. Suchen Sie die laufende Instanz, indem Sie den Befehl ibmcloud is instances verwenden, 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.

  3. Führen Sie den Befehl ibmcloud is instance aus, um zu überprüfen, ob der Zugriff auf den Metadatendienst aktiviert ist. Das folgende Beispiel zeigt den Wert 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
    
  4. Aktivieren Sie den Zugriff auf den Metadatendienst, indem Sie den Befehl ibmcloud is instance-update mit der Option --metadata-service true ausfü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
    
  5. 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

  1. 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"
    
  2. 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": false im Abschnitt metadata_service an.

    {
     "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
     }
     .
     .
     .
    }
    
  3. Ermöglichen Sie den Zugriff auf den Metadatendienst, indem Sie eine PATCH /instances anfrage 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
            }
        }`
    
  4. 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"
  }
}
  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.

Metadaten URIs
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.