Recupero dei metadati da un'istanza

Nella maggior parte dei casi, si desidera raccogliere i metadati da un'istanza in esecuzione e utilizzarli per avviare un'altra istanza di server virtuale. Altre volte, potrebbe essere necessario raccogliere informazioni sugli allegati di rete o sugli allegati di volume. Esaminare la procedura generale e le istruzioni passo-passo per abilitare l'accesso al servizio di metadati, creare un token di accesso all'identità e recuperare i metadati.

Procedura generale per accedere ai metadati dell'istanza

La Tabella 1 descrive le fasi di accesso ai metadati. Le informazioni forniscono il contesto per ogni fase e i link a informazioni specifiche per completare la fase. In un ambiente reale, i passi 3-5 potrebbero essere avviati dal software di inizializzazione della tua istanza all'avvio o utilizzando cloud - init.

Procedura generale di accesso ai metadati
Passo Contesto Servizio chiamato Azione utente
1 IBM Cloud IU VPC, CLI, API L'accesso al servizio di metadati è disabilitato per impostazione predefinita. È possibile abilitare l'accesso al servizio di metadati su un'istanza esistente nella console, dalla CLI o con l'API.
2 IBM Cloud
Accedere all'istanza utilizzando le normali operazioni di avvio.
3 istanza VPC Servizio metadati Eseguire un comando curl per chiamare il servizio token dei metadati e acquisire un token di accesso all'identità.
4 istanza VPC Servizio metadati Eseguire un comando curl per chiamare il servizio di metadati e recuperare le informazioni sull'istanza. Il token del passo precedente viene passato e vengono restituiti i metadati.
5 istanza VPC
Analizzare il JSON restituito nel passo precedente per acquisire dati utente.

Procedura end-to-end per l'accesso ai metadati da una istanza

Individuazione dell'istanza in esecuzione e abilitazione dell'accesso al servizio metadati nella console

  1. Nella console IBM Cloud, fai clic sull'icona del menu di navigazione > Icona VPC infrastruttura > Elaborazione > Istanze server virtuali.

  2. Individuare l'istanza in esecuzione nell'elenco. Fare clic sul nome dell'istanza per visualizzarne i dettagli. Nella scheda Panoramica, scorri fino ai dettagli di configurazione avanzata e fai clic sul pulsante di attivazione/disattivazione per consentire l'accesso al servizio metadati.

  3. Se l'istanza ha già un indirizzo IP fluttuante (indicato nella scheda Rete), utilizzare tale indirizzo per stabilire una connessione sicura al server. Se non ha un indirizzo IP flottante, assegnargliene uno. Per ulteriori informazioni, vedere le fasi successive dell'argomento Creazione di istanze di server virtuali.

Individuazione dell'istanza in esecuzione e abilitazione dell'accesso al servizio di metadati dalla CLI

  1. Accedi alla CLI di IBM Cloud.

  2. Individuare l'istanza in esecuzione utilizzando il comando ibmcloud is instances, che elenca le istanze disponibili nella regione.

    $ 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         -                  -                    -                      -
    

    Il servizio metadati è supportato su tutte le immagini stock e personalizzate e sui profili CPU.

  3. Eseguire il comando ibmcloud is instance per verificare se l'accesso al servizio metadati è abilitato. L'esempio seguente mostra il valore 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. Abilitare l'accesso al servizio di metadati eseguendo il comando ibmcloud is instance-update con l'opzione --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
    
  5. Se l'istanza ha già un indirizzo IP fluttuante, usarlo per stabilire una connessione sicura al server. Se non ha un indirizzo IP flottante, assegnargliene uno. Per ulteriori informazioni, vedere le fasi successive dell'argomento Creazione di istanze di server virtuali.

Individuazione dell'istanza in esecuzione e abilitazione dell'accesso al servizio di metadati con l'API

  1. Individuare l'istanza in esecuzione elencando le istanze disponibili nella regione. Selezionare l'ID dell'istanza dalla risposta.

    curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  2. Recupera le informazioni dell'istanza selezionata per confermare se l'accesso al servizio di metadati è abilitato.

    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"
    

    La risposta API mostra "enabled": false nella sezione metadata_service.

    {
     "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. Abilitare l'accesso al servizio di metadati facendo una PATCH /instances richiesta per l'istanza.

    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. Se l'istanza ha già un indirizzo IP fluttuante, usarlo per stabilire una connessione sicura al server. Se non ha un indirizzo IP flottante, assegnargliene uno. Per ulteriori informazioni, vedere come accedere alla propria istanza.

Stabilire una connessione sicura all'istanza del server virtuale

Linux

L'esempio seguente mostra la sintassi del comando da usare per connettersi a un'istanza di server basata su Linux.

ssh -i <path to your private key file> <default-user-account>@<floating ip address>

Finestre

Gli utenti Windows hanno requisiti aggiuntivi per accedere e utilizzare il servizio di metadati. Per ulteriori informazioni, vedere Impostazione dei server Windows per l'utilizzo del servizio metadati.

Se il server è dotato di un sistema operativo Windows, utilizzare un client RDP per collegarsi al server.

Per ulteriori informazioni, vedi Connessione alla tua istanza Linux o Connessione alla tua istanza Windows.

Raccolta di informazioni dal servizio di metadati

Dall'istanza del server virtuale, fare una richiesta all'API dell'identità per recuperare un token di identità. Specificare per quanto tempo si desidera che il token rimanga valido. Ad esempio, è possibile specificare 3600 secondi (1 ora).

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)'`

La risposta fornisce il token di accesso all'identità. Il parser lo salva nel file .access_token.

L'esempio utilizza jq come parser, uno strumento di terze parti distribuito sotto licenza MIT. Alcuni sistemi operativi non includono di default il programma “ jq ”. Prima dell'uso, installa jq oppure utilizza un altro parser JSON.

Recupero delle informazioni di inizializzazione

Dopo aver ottenuto il token di identità, è possibile effettuare una richiesta API al servizio di metadati per raccogliere le informazioni di inizializzazione:

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

La risposta API contiene informazioni quali la chiave SSH e i dati dell'utente specificati al momento del provisioning del server virtuale. Se sono state configurate le password, vengono restituite anche tali informazioni. È possibile utilizzare queste informazioni per avviare una nuova istanza di server virtuale.

Recupero delle informazioni sull'istanza

Effettuare una richiesta a GET "/metadata/v1/instance" per recuperare informazioni dettagliate sull'istanza.

curl -X GET "$vpc_metadata_api_endpoint/metadata/v1/instance?version=2025-04-22" -H "Authorization: Bearer $identity_token"

La risposta elenca tutti i dettagli di un'istanza, comprese le interfacce di rete, il profilo di calcolo e gli allegati di volume.

{
  "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. Utilizzare altri metodi API per recuperare ulteriori informazioni sull'istanza, come gli allegati di volume e di rete, o raccogliere informazioni sulle chiavi SSH, sui gruppi di collocamento o sulle interfacce di rete virtuali. Per ulteriori informazioni, consultare il riferimento all'API del servizio di metadati e il riepilogo delle informazioni sul servizio di metadati.

La tabella seguente mostra altri metodi per le richieste API GET che si possono effettuare per ottenere informazioni specifiche sull'istanza.

URI dei metadati
Endpoint API Descrizione
/metadata/v1/instance/cluster_network_attachments Elenco degli allegati di rete del cluster
/metadata/v1/instance/cluster_network_attachments/{id} Recuperare un collegamento di rete del cluster
/metadata/v1/instance/network_attachments Elenco degli allegati di rete
/metadata/v1/instance/network_attachments/{id} Recuperare un allegato di rete
/metadata/v1/instance/network_interfaces Elenca i metadati di tutte le interfacce di rete di un'istanza.
/metadata/v1/instance/network_interfaces/{id} Recupera i metadati di un'interfaccia di rete in base all'ID.
/metadata/v1/instance/software_attachments Elenca i metadati di tutti gli allegati software di un'istanza.
/metadata/v1/instance/software_attachments/{id} Recupera i metadati di un allegato software in base all'ID.
/metadata/v1/instance/volume_attachments Elenca i metadati di tutti gli allegati del volume per un'istanza.
/metadata/v1/instance/volume_attachment/{id} Recupera i metadati di un allegato di volume in base all'ID.

Passi successivi

Utilizzare il profilo di fiducia per l'istanza e generare un token IAM dal token di accesso all'identità ad altri servizi abilitati IAM. Vedi Utilizzo di un profilo attendibile per richiamare i servizi abilitati a IAM.