Installer des extensions de VM en créant des règles d'extension

Ce document explique comment créer des stratégies d'extension de VM, qui vous permettent d'installer et de gérer automatiquement des extensions sur un parc de machines virtuelles (VM) Compute Engine. En définissant une règle, vous pouvez vous assurer que des extensions spécifiques sont installées et gérées sur toutes les VM qui correspondent aux critères que vous spécifiez, tels que les libellés de VM.

Avant de commencer

Rôles IAM requis

Pour obtenir l'autorisation nécessaire pour créer une stratégie d'extension, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des stratégies d'extension de VM (roles/compute.vmExtensionPolicyAdmin). Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation compute.vmExtensionPolicies.create, qui est nécessaire pour créer une stratégie d'extension.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles et autorisations IAM dans Compute Engine, consultez Rôles et autorisations Compute Engine.

Créer une règle d'extension de VM

Utilisez l'une des méthodes suivantes pour créer une règle d'extension de VM. Cette règle définit les extensions à installer et les VM sur lesquelles les installer.

Console

  1. Dans la console Google Cloud , accédez à la page Règles d'extension de VM.

    Accéder aux règles d'extension de VM

  2. Cliquez sur Créer une règle d'extension.
  3. Dans le champ Nom, saisissez un nom pour la règle.
  4. Facultatif : Dans le champ Description, saisissez une description de la règle.
  5. Dans le champ Priorité, spécifiez un numéro de priorité pour résoudre les conflits entre les règles. Plus le nombre est faible, plus la priorité est élevée. La valeur par défaut est 1 000.
  6. Dans la liste Zone, sélectionnez la zone dans laquelle vous souhaitez appliquer cette règle.
  7. Dans la section Extensions, cliquez sur Ajouter une extension, puis procédez comme suit pour chaque extension que vous souhaitez installer sur les VM cibles :
    1. Dans la liste Extension, sélectionnez une extension. Consultez la section Extensions compatibles.
    2. Dans la liste Version, indiquez le numéro de version de l'extension. Laissez ce champ vide pour sélectionner la dernière version.
      • Pour l'agent Ops, vous pouvez spécifier la version 2.58.0 ou ultérieure.
      • Pour les charges de travail Extension pour SAP et Extension pour Compute, laissez le champ vide pour sélectionner la dernière version.
    3. Facultatif : Dans le champ Contenu du fichier de configuration, saisissez les paramètres de configuration de l'extension.
  8. Dans la section Instances de VM cibles, sélectionnez les VM pour la règle. Pour sélectionner des VM avec des libellés spécifiques, cliquez sur Ajouter des libellés, puis ajoutez la paire clé-valeur.
  9. Cliquez sur Créer.

gcloud

Pour créer une stratégie d'extension de VM et la déployer sur des VM dans une zone spécifique, utilisez la commande gcloud beta compute zone-vm-extension-policies create :

gcloud beta compute zone-vm-extension-policies create POLICY_NAME \
    --zone=ZONE \
    --description="DESCRIPTION" \
    --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
    --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \
    --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \
    --inclusion-labels=KEY_1=VALUE_1 \
    --priority=PRIORITY

Remplacez les éléments suivants :

  • POLICY_NAME : nom de la règle d'extension de VM.
  • ZONE : zone à laquelle s'applique cette règle.
  • DESCRIPTION : description facultative de la règle.
  • EXTENSION_NAME_1,EXTENSION_NAME_2 : liste d'extensions à ajouter à la stratégie, séparées par une virgule. Vous devez spécifier au moins une extension. Voici les valeurs valides pour les extensions :
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 : liste de paires clé/valeur séparées par une virgule, où la clé correspond au nom de l'extension et la valeur à la version de l'extension. Si vous ne spécifiez pas de version pour une extension, le gestionnaire d'extensions de VM utilise la dernière version disponible et la met à niveau automatiquement lorsque de nouvelles versions sont disponibles.

  • EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 : liste de paires clé-valeur séparées par des virgules, où la clé est le nom de l'extension et la valeur est le chemin d'accès au fichier de configuration de cette extension. Ce chemin d'accès se trouve sur la VM sur laquelle vous exécutez la commande gcloud, et non sur celle sur laquelle vous installez l'extension.

    Vous pouvez également fournir la configuration sous forme de chaîne intégrée à l'aide de l'option --config au lieu de --config-from-file, par exemple EXTENSION_NAME_1="CONFIG_1". Vous pouvez utiliser --config-from-file ou --config, mais pas les deux dans la même commande.

  • KEY_1=VALUE_1 : liste de paires clé/valeur séparées par une virgule qui définissent les libellés d'inclusion pour un sélecteur. Pour être ciblées, les VM doivent comporter tous les libellés spécifiés dans un sélecteur. Si vous spécifiez --inclusion-labels plusieurs fois, la règle cible les VM qui correspondent à l'un des sélecteurs fournis (OR logique). Si vous omettez cet indicateur, la règle cible toutes les VM de la zone spécifiée.

  • PRIORITY : entier compris entre 0 et 65 535 qui définit la priorité de la stratégie. Plus le nombre est faible, plus la priorité est élevée. La valeur par défaut est 1 000.

    La commande échoue si une règle portant le nom spécifié existe déjà dans la zone.

Exemple 1

La commande suivante crée une règle nommée test-extension-policy qui installe l'extension ops-agent dans la zone us-central1-f pour le projet test-project. L'indicateur --config-from-file spécifie le chemin d'accès à un fichier local contenant une configuration YAML pour l'agent Ops.

gcloud beta compute zone-vm-extension-policies create test-extension-policy  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml"

Exemple 2

La commande suivante crée une règle nommée test-extension-policy-2 qui installe l'extension ops-agent dans la zone us-central1-f pour le projet test-project sur les VM portant le libellé env=prod. La priorité de la règle est définie sur 500, et l'indicateur --config-from-file spécifie le chemin d'accès à un fichier local contenant une configuration YAML pour l'agent Ops.

 gcloud beta compute zone-vm-extension-policies create test-extension-policy-2  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
    --priority=500 \
    --inclusion-labels=env=prod

Étapes suivantes