Afficher et gérer les métadonnées de VM

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 paires clé/valeur 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 :

  1. Connectez-vous et générez le fichier kubeconfig pour le serveur d'API Management si vous n'en avez pas.

  2. Utilisez le chemin d'accès au fichier kubeconfig du serveur de l'API Management pour remplacer MANAGEMENT_API_SERVER dans ces instructions.

Demander des autorisations et un accès

Pour effectuer les tâches listées sur cette page, vous devez disposer du rôle Administrateur VirtualMachine du projet. Suivez les étapes pour valider ou demandez à votre administrateur IAM de projet de vous attribuer le rôle Administrateur VirtualMachine du projet (project-vm-admin) dans l'espace de noms du projet dans lequel réside la VM.

Pour les opérations sur les VM à l'aide de la console GDC ou de la CLI gdcloud, demandez à votre administrateur IAM de projet de vous attribuer le rôle Administrateur de machines virtuelles du projet et le rôle Lecteur du projet (project-viewer).

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 --metadata ou --metadata-from-file dans 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]
        [--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 VM
    • PROJECT : 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.

  1. Utilisez la CLI gdcloud pour générer un jeton STS :

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Remplacez ORG_SUFFIX par le suffixe de l'organisation. Par exemple, si l'URL de la console d'administration de l'organisation est https://console.example-org.com, le ORG_SUFFIX est example-org.com.

    Le résultat ressemble à ce qui suit :

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Ajoutez des métadonnées à une instance de VM spécifique :

    curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/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 est https://console.example-org.com, le ORG_SUFFIX est example-org.com.
    • VM_NAME : nom de l'instance de VM
    • PROJECT : nom du projet dans lequel réside la VM. Cette valeur est facultative.
    • STS_TOKEN : jeton STS généré à partir de la CLI gdcloud.

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 --all ou --keys dans votre commande :

    gdcloud compute instances remove-metadata VM_NAME
        [--project=PROJECT]
        [--keys=KEY,[KEY,...]]
        [--all]
    

    Remplacez les éléments suivants :

    • VM_NAME : nom de l'instance de VM
    • PROJECT : nom du projet dans lequel réside la VM. Cette valeur est facultative.
    • KEY : chaîne clé de la paire de métadonnées.

API

Pour supprimer des métadonnées avec l'API, vous devez utiliser un jeton STS.

  1. Utilisez la CLI gdcloud pour générer un jeton STS :

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Remplacez ORG_SUFFIX par le suffixe de l'organisation. Par exemple, si l'URL de la console d'organisation est https://console.example-org.com, le ORG_SUFFIX est example-org.com.

    Le résultat ressemble à ce qui suit :

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Supprimez les métadonnées d'une instance de VM spécifique :

    curl -X POST "https://metadata.ORG_SUFFIX/virtual-machines/metadata/v1/projects/PROJECT/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 est https://console.example-org.com, le ORG_SUFFIX est example-org.com.
    • VM_NAME : nom de l'instance de VM
    • PROJECT : nom du projet dans lequel réside la VM.
    • STS_TOKEN : jeton STS généré à partir de la CLI gdcloud.

Interroger les métadonnées

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]
    

    Remplacez les éléments suivants :

    • VM_NAME : nom de l'instance de VM
    • PROJECT : 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

  1. Utilisez la CLI gdcloud pour générer un jeton STS :

    gdcloud auth print-identity-token --audiences="https://metadata.ORG_SUFFIX"
    

    Remplacez ORG_SUFFIX par le suffixe de l'organisation.

    Le résultat ressemble à ce qui suit :

    STS-Bearer-QPN1nX6GVdoRKCpRx7FD-61gh6RAvWfM6sqjU2knw9n6RFn1jR2n4i1z1irH2HrMLf0tC3hqNaetYzoOBQ6hI2eS7-58_ZZGCMc_oARuX_T9Wmtwe4xlaIS97aDdu9KETEs0akoVYEsmFsWCu2Cu5pdiwjzSuWnRCMZwq9g8BmnPSck1Auf7rOfM7o2FoGE_lbLFZK4C8TCPdloDZAXYcLeNAQ
    
  2. Listez 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/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 est https://console.example-org.com, le ORG_SUFFIX est example-org.com.
    • VM_NAME : nom de l'instance de VM
    • PROJECT : nom du projet dans lequel réside la VM. Cette valeur est facultative.
    • STS_TOKEN : jeton STS généré à partir de la CLI gdcloud.

    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 depuis 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 à partir 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"