Récupération des métadonnées d'une instance
Le plus souvent, vous souhaitez collecter les métadonnées d'une instance en cours d'exécution et les utiliser pour démarrer une autre instance de serveur virtuel. Dans d'autres cas, vous pouvez avoir besoin de collecter des informations sur les pièces jointes de réseau ou les pièces jointes de volume. Examinez la procédure générale et les instructions étape par étape pour activer l'accès au service de métadonnées, créer un jeton d'accès à l'identité et récupérer les métadonnées.
Procédure générale d'accès aux métadonnées de l'instance
Le tableau 1 décrit les étapes de l'accès aux métadonnées. Ces informations fournissent le contexte de chaque étape et des liens vers des informations spécifiques pour effectuer cette étape. Dans un environnement réel, les étapes 3 à 5 seraient plus probablement lancées par le logiciel d'initialisation de votre instance au démarrage ou à l'aide de cloud-init.
| Etape | Contexte | Service appelé | Action de l'utilisateur |
|---|---|---|---|
| 1 | IBM Cloud | IU VPC, CLI, API | L'accès au service de métadonnées est désactivé par défaut. Vous pouvez activer l'accès au service de métadonnées sur une instance existante dans la console, à partir du CLI ou avec l'API. |
| 2 | IBM Cloud |
|
Connectez-vous à l'instance en suivant la procédure de démarrage habituelle. |
| 3 | Instance VPC | Service de métadonnées | Exécutez une commande curl pour appeler le service de jetons de métadonnées afin d’ obtenir un jeton d’accès d’identité. |
| 4 | Instance VPC | Service de métadonnées | Exécutez une commande curl pour appeler le service de métadonnées afin de récupérer les informations relatives à l'instance. Le jeton de l'étape précédente est transmis et
les métadonnées sont renvoyées. |
| 5 | Instance VPC |
|
Analysez le code JSON renvoyé à l'étape précédente pour acquérir les données de l'utilisateur. |
Procédure de bout en bout pour accéder aux métadonnées d'instance
Localisation de l'instance en cours d'exécution et activation de l'accès au service de métadonnées dans la console
-
Dans la console IBM Cloud, cliquez sur l'icône de
Navigation > Infrastructure
> Compute > Virtual server instances.
-
Localisez l'instance en cours d'exécution dans la liste. Cliquez sur le nom de l'instance pour afficher ses détails. Dans l'onglet Vue d'ensemble, faites défiler jusqu'aux détails de la configuration avancée et cliquez sur le bouton permettant d'autoriser l'accès au service de métadonnées.
-
Si l'instance possède déjà une adresse IP flottante (indiquée dans l'onglet Mise en réseau), utilisez cette adresse pour établir une connexion sécurisée avec le serveur. S'il n'a pas d'adresse IP flottante, attribuez-lui en une. Pour plus d'informations, voir les étapes suivantes de la rubrique Création d'instances de serveurs virtuels.
Localisation de l'instance en cours d'exécution et activation de l'accès au service de métadonnées à partir de la CLI
-
Connectez-vous à l'interface de ligne de commande (CLI) d' IBM Cloud.
-
Localisez l'instance en cours d'exécution à l'aide de la commande
ibmcloud is instances, qui répertorie les instances disponibles dans la région.$ 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 - - - -Le service de métadonnées est pris en charge sur toutes les images stockées et personnalisées, ainsi que sur les profils d'UC.
-
Exécutez la commande
ibmcloud is instancepour confirmer que l'accès au service de métadonnées est activé. L'exemple suivant montre la valeurfalse.$ 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 -
Activez l'accès au service de métadonnées en exécutant la commande
ibmcloud is instance-updateavec l'option--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 -
Si l'instance possède déjà une adresse IP flottante, utilisez cette adresse pour établir une connexion sécurisée avec le serveur. S'il n'a pas d'adresse IP flottante, attribuez-lui en une. Pour plus d'informations, voir les étapes suivantes de la rubrique Création d'instances de serveurs virtuels.
Localiser l'instance en cours d'exécution et permettre l'accès au service de métadonnées à l'aide de l'API
-
Localiser l'instance en cours en listant les instances disponibles dans la région. Sélectionnez l'identifiant de l'instance dans la réponse.
curl -X GET "$vpc_api_endpoint/v1/instances?version=2025-05-13&generation=2" -H "Authorization: Bearer $iam_token" -
Récupérer les informations de l'instance sélectionnée pour confirmer si l'accès au service de métadonnées est activé.
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 réponse de l'API indique
"enabled": falsedans la sectionmetadata_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 } . . . } -
Permettre l'accès au service de métadonnées en effectuant une
PATCH /instancespour l'instance.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 } }` -
Si l'instance possède déjà une adresse IP flottante, utilisez cette adresse pour établir une connexion sécurisée avec le serveur. S'il n'a pas d'adresse IP flottante, attribuez-lui en une. Pour plus d'informations, voir Connexion à votre instance.
Établissement d'une connexion sécurisée à l'instance de serveur virtuel
Linux
L'exemple suivant montre la syntaxe de commande à utiliser pour se connecter à une instance de serveur basée sur Linux.
ssh -i <path to your private key file> <default-user-account>@<floating ip address>
Windows
Les utilisateurs de Windows doivent remplir des conditions supplémentaires pour accéder au service de métadonnées et l'utiliser. Pour plus d'informations, consultez la section Configuration des serveurs Windows pour l'utilisation du service de métadonnées.
Si votre serveur fonctionne sous Windows, utilisez un client RDP pour vous y connecter.
Pour plus d'informations, voir Connexion à votre instance Linux ou Connexion à votre instance Windows.
Collecte d'informations auprès du service de métadonnées
À partir de l'instance de serveur virtuel, faites une demande à l'API d'identité pour récupérer un jeton d'identité. Indiquez la durée de validité du jeton. Par exemple, vous pouvez spécifier 3600 secondes (1 heure).
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 réponse fournit le jeton d'accès à l'identité. L'analyseur syntaxique l'enregistre dans le fichier .access_token.
L'exemple utilise jq comme analyseur syntaxique, un outil tiers sous licence MIT. Certains systèmes d'exploitation ne l'incluent pas par jq défaut. Installez-le
avant jq utilisation ou remplacez-le par un autre analyseur JSON.
Récupération des informations d'initialisation
Après avoir obtenu votre jeton d'identité, vous pouvez maintenant faire une demande API au service de métadonnées pour recueillir les informations d'initialisation :
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 réponse de l'API contient des informations telles que la clé SSH et les données de l'utilisateur qui ont été spécifiées lors de l'approvisionnement du serveur virtuel. Si vous avez configuré des mots de passe, ces informations sont également renvoyées. Vous pouvez utiliser ces informations pour démarrer une nouvelle instance de serveur virtuel.
Récupération des informations sur l'instance
Envoyez une requête GET "/metadata/v1/instance" pour récupérer des informations détaillées sur l'instance.
curl -X GET "$vpc_metadata_api_endpoint/metadata/v1/instance?version=2025-04-22" -H "Authorization: Bearer $identity_token"
La réponse énumère tous les détails d'une instance, y compris les interfaces réseau, le profil de traitement et les connexions de 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"
}
}
- Utilisez d'autres méthodes de l'API pour obtenir davantage d'informations sur l'instance, telles que le volume et les pièces jointes du réseau, ou pour recueillir des informations sur les clés SSH, les groupes de placement ou les interfaces réseau virtuelles. Pour plus d'informations, voir la référence API du service de métadonnées et le résumé des informations sur le service de métadonnées.
Le tableau suivant présente d'autres méthodes pour les requêtes API GET que vous pouvez utiliser pour obtenir des informations spécifiques sur l'instance.
| Noeud final d'API | Description |
|---|---|
/metadata/v1/instance/cluster_network_attachments |
Liste des pièces jointes du réseau de clusters |
/metadata/v1/instance/cluster_network_attachments/{id} |
Récupérer une connexion réseau du cluster |
/metadata/v1/instance/network_attachments |
Liste des pièces jointes au réseau |
/metadata/v1/instance/network_attachments/{id} |
Récupérer une pièce jointe du réseau |
/metadata/v1/instance/network_interfaces |
Répertorier les métadonnées de toutes les interfaces réseau d'une instance. |
/metadata/v1/instance/network_interfaces/{id} |
Extraire les métadonnées d'une interface réseau par ID. |
/metadata/v1/instance/software_attachments |
Répertorier les métadonnées de toutes les pièces jointes logicielles d'une instance. |
/metadata/v1/instance/software_attachments/{id} |
Récupérer les métadonnées d'une pièce jointe logicielle à l'aide de son ID. |
/metadata/v1/instance/volume_attachments |
Répertorier les métadonnées de toutes les connexions de volume d'une instance. |
/metadata/v1/instance/volume_attachment/{id} |
Extraire les métadonnées d'une connexion de volume par ID. |
Etapes suivantes
Utilisez le profil de confiance de l'instance et générez un jeton IAM à partir du jeton d'accès d'identité pour accéder à d'autres services compatibles avec IAM. Voir Utilisation d'un profil sécurisé pour appeler les activés pour IAM.