Chaque machine virtuelle (VM) stocke ses métadonnées sur un serveur de métadonnées. Vous pouvez ajouter, supprimer et afficher des métadonnées sur vos VM Google Distributed Cloud (GDC) isolées en tant que paires clé/valeur (KVP).
Vous pouvez utiliser les KVP de métadonnées pour stocker des informations qui peuvent vous aider à identifier votre VM, comme un nom de serveur. Vous pouvez accéder aux métadonnées depuis l'extérieur et l'intérieur de la VM, et les utiliser pour transmettre des informations entre différents systèmes.
Avant de commencer
Pour utiliser les commandes de l'interface de ligne de commande (CLI) gdcloud, assurez-vous d'avoir téléchargé, installé et configuré la CLI gdcloud.
Toutes les commandes pour Distributed Cloud utilisent la CLI gdcloud ou kubectl et nécessitent un environnement de système d'exploitation (OS).
Obtenir le chemin d'accès au fichier kubeconfig
Pour exécuter des commandes sur le serveur de l'API Management, assurez-vous de disposer des ressources suivantes :
Connectez-vous et générez le fichier kubeconfig pour le serveur d'API Management si vous n'en avez pas.
Utilisez le chemin d'accès au fichier kubeconfig du serveur de l'API Management pour remplacer
MANAGEMENT_API_SERVERdans ces instructions.
Demander des autorisations et un accès
Pour ajouter, supprimer et gérer les métadonnées des instances de VM avec l'API et la CLI gdcloud, demandez à l'administrateur IAM de votre projet de vous accorder les rôles IAM suivants dans l'espace de noms du projet dans lequel réside la VM :
Administrateur VirtualMachine du projet (
project-vm-admin) : gère les VM dans l'espace de noms du projet.Lecteur de projet (
project-viewer) : dispose d'un accès en lecture seule à toutes les ressources d'un espace de noms de projet.
Suivez la procédure pour valider votre accès.
Ajouter ou supprimer des métadonnées
Cette section explique comment ajouter et supprimer des métadonnées d'instances de VM existantes.
Vous pouvez utiliser des métadonnées pour stocker des paires clé/valeur arbitraires que vous souhaitez ajouter à vos VM. Par exemple, vous pouvez ajouter et gérer vos propres métadonnées personnalisées pour identifier différents environnements, tels que test et production.
Ajouter des métadonnées
gdcloud
Ajoutez des métadonnées à une instance de VM spécifique. Vous devez inclure l'une des options
--metadataou--metadata-from-filedans votre commande. Si nécessaire pour votre cas d'utilisation, vous pouvez également ajouter les deux indicateurs dans la même commande :gdcloud compute instances add-metadata VM_NAME [--project=PROJECT_NAME] [--metadata=KEY=KEY_VALUE,[,KEY=KEY_VALUE,...]] [--metadata-from-file=KEY=LOCAL_FILE_PATH,]Remplacez les éléments suivants :
VM_NAME: nom de l'instance de VMPROJECT_NAME: nom du projet dans lequel réside la VM. Cette valeur est facultative.KEY: clé de la paire de métadonnées.KEY_VALUE: valeur de la paire de métadonnées.LOCAL_FILE_PATH: valeur de la paire de métadonnées à partir d'un fichier local.
API
Pour ajouter des métadonnées avec l'API, vous devez utiliser un jeton STS.
Utilisez la CLI gdcloud pour générer un jeton
STS:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Remplacez
ORG_SUFFIXpar le suffixe de l'organisation. Par exemple, si l'URL de la console d'administration de l'organisation esthttps://console.example-org.com,ORG_SUFFIXestexample-org.com.Le résultat ressemble à ce qui suit :
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQAjoutez des métadonnées à une instance de VM spécifique :
curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT_NAME/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN \ -H "Content-Type: application/json" \ -d "{"metadata": {"items": [{"key": "test-key", "value": "test-value"}]}}"Remplacez les éléments suivants :
ORG_SUFFIX: suffixe de l'organisation. Par exemple, si l'URL de la console de l'organisation esthttps://console.example-org.com, leORG_SUFFIXestexample-org.com.VM_NAME: nom de l'instance de VMPROJECT_NAME: nom du projet dans lequel réside la VM. Cette valeur est facultative.STS_TOKEN: jetonSTSgénéré à partir de la gcloud CLI.
L'exemple suivant montre une commande
curlcomplète permettant d'ajouter des métadonnées à une instance de VM :curl -X POST "https://metadata.org-1.zone1.google.gdch.test/virtual-machines/metadata/v1/projects/username-test/vm/lancer-vm" \ -H "Authorization: Bearer $STS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"metadata": {"items": [{"key": "test-key1", "value": "test-value"}]}}'
Supprimer les métadonnées
gdcloud
Supprimez les métadonnées d'une instance de VM spécifique. Si vous souhaitez supprimer toutes les entrées de métadonnées, utilisez l'indicateur
--all. Vous devez utiliser l'une des options--allou--keysdans votre commande :gdcloud compute instances remove-metadata VM_NAME [--project=PROJECT_NAME] [--keys=KEY,[KEY,...]] [--all]Remplacez les éléments suivants :
VM_NAME: nom de l'instance de VMPROJECT_NAME: nom du projet dans lequel réside la VM. Cette valeur est facultative.KEY: chaîne clé pour la paire de métadonnées.
API
Pour supprimer des métadonnées avec l'API, vous devez utiliser un jeton STS.
Utilisez la CLI gdcloud pour générer un jeton
STS:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Remplacez
ORG_SUFFIXpar le suffixe de l'organisation. Par exemple, si l'URL de la console d'administration de l'organisation esthttps://console.example-org.com, leORG_SUFFIXestexample-org.com.Le résultat ressemble à ce qui suit :
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQSupprimez les métadonnées d'une instance de VM spécifique :
curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT_NAME/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN" \ -H "Content-Type: application/json" \ -d "{"metadata": {}}"Remplacez les éléments suivants :
ORG_SUFFIX: suffixe de l'organisation. Par exemple, si l'URL de la console de l'organisation esthttps://console.example-org.com, leORG_SUFFIXestexample-org.com.VM_NAME: nom de l'instance de VMPROJECT_NAME: nom du projet dans lequel réside la VM.STS_TOKEN: jetonSTSgénéré à partir de la gcloud CLI.
Métadonnées de requête
gdcloud
Listez toutes les métadonnées d'instance de VM pour afficher les détails des métadonnées :
gdcloud compute instances describe VM_NAME [--project=PROJECT_NAME]Remplacez les éléments suivants :
VM_NAME: nom de l'instance de VMPROJECT_NAME: nom du projet dans lequel réside la VM. Cette valeur est facultative.
Le résultat ressemble à ce qui suit :
# … metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
API
Utilisez la CLI gdcloud pour générer un jeton
STS:gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"Remplacez
ORG_SUFFIXpar le suffixe de l'organisation.Le résultat ressemble à ce qui suit :
STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQListez toutes les métadonnées d'instance de VM pour afficher les détails des métadonnées :
curl "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT_NAME/vm/VM_NAME" \ -H "Authorization: Bearer STS_TOKEN" \ -H "Content-Type: application/json"Remplacez les éléments suivants :
ORG_SUFFIX: suffixe de l'organisation. Par exemple, si l'URL de la console de l'organisation esthttps://console.example-org.com, leORG_SUFFIXestexample-org.com.VM_NAME: nom de l'instance de VMPROJECT_NAME: nom du projet dans lequel réside la VM. Cette valeur est facultative.STS_TOKEN: jetonSTSgénéré à partir de la gcloud CLI.
Le résultat ressemble à ce qui suit :
# … metadata: items: - key: Key-1 value: val12 - key: key2 value: lksdjfhk-user1
Interroger les métadonnées à partir d'une VM
Vous pouvez interroger les métadonnées de VM à partir de la VM, sans avoir à vous connecter au serveur de métadonnées. Pour ce faire, utilisez la commande curl et ajoutez la clé de métadonnées applicable à l'URL des métadonnées.
Interroger un seul KVP
Interroger une seule paire clé/valeur à partir d'une VM :
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/KEY" \
-H "Metadata-Flavor: Google"
Remplacez KEY par la clé de la paire de métadonnées que vous souhaitez interroger.
Interroger toutes les paires clé-valeur avec des valeurs
Interrogez toutes les paires clé/valeur d'une VM avec des valeurs clés :
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true" \
-H "Metadata-Flavor: Google"
Interroger toutes les clés de métadonnées sans valeur
Interrogez toutes les clés de métadonnées à partir d'une VM sans clé-valeur :
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=false" \
-H "Metadata-Flavor: Google"