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.
| 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
-
Nella console IBM Cloud, fai clic
del menu di navigazione >
infrastruttura > Elaborazione > Istanze server virtuali.
-
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.
-
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
-
Accedi alla CLI di IBM Cloud.
-
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.
-
Eseguire il comando
ibmcloud is instanceper verificare se l'accesso al servizio metadati è abilitato. L'esempio seguente mostra il valorefalse.$ 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 -
Abilitare l'accesso al servizio di metadati eseguendo il comando
ibmcloud is instance-updatecon 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 -
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
-
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" -
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": falsenella sezionemetadata_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 } . . . } -
Abilitare l'accesso al servizio di metadati facendo una
PATCH /instancesrichiesta 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 } }` -
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"
}
}
- 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.
| 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.