Gérer les VM couvertes par la règle d'OS de l'Agent Ops

Si vous avez créé des VM Compute Engine avec l'Agent Ops installé lors de la création ou, dans certains cas, si vous avez installé l'agent sur des VM existantes à l'aide de la console Google Cloud, Google Cloud a également créé des règles d'OS VM Manager qui installent et surveillent l'Agent Ops. Ce document explique comment interroger ces règles d'OS et gérer l'Agent Ops sur les VM soumises à ces règles. Pour en savoir plus sur la création de VM avec l'Agent Ops installé automatiquement, consultez la section Installer l'Agent Ops lors de la création de la VM.

Après avoir créé une règle d'OS d'Agent Ops, vous pouvez effectuer les opérations suivantes :

  • Déterminer les VM soumises à la règle
  • Déterminer les zones soumise à la règle
  • Étendre la couverture de la règle aux VM existantes
  • Désinstaller l'agent d'une VM soumise à la règle

Rechercher les VM soumises aux règles d'OS de l'Agent Ops

Vous pouvez utiliser la console Google Cloud ou Google Cloud CLI pour afficher les VM de votre projet Google Cloud soumises aux règles d'OS de l'Agent Ops via une attribution de règle d'OS. Si vous pensez qu'une VM manque de couverture, vous pouvez résoudre le problème en procédant comme suit :

Vérifier qu'une règle d'OS de l'Agent Ops est attribuée aux VM d'une zone

Pour vérifier que les VM d'une zone sont couvertes par la règle d'OS de l'Agent Ops, utilisez la console Google Cloud ou gcloud CLI pour voir si la VM est liée à une attribution de règle d'OS de l'Agent Ops.

Console

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

    Accéder aux règles d'OS

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Compute Engine.

  2. Dans l'onglet Instances de VM, sélectionnez la VM que vous souhaitez vérifier.

  3. Si la VM est couverte par une règle d'OS de l'Agent Ops, la colonne ID de la règle d'OS inclut goog-ops-agent-policy et l'état est "Conforme".

gcloud

Pour afficher la liste des attributions de règles d'OS de l'Agent Ops dans une zone, exécutez la commande suivante :

gcloud compute os-config os-policy-assignment-reports list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

Le résultat affiche une liste des VM avec une attribution de règle d'OS de l'Agent Ops. Si l'Agent Ops est installé sur la VM, la colonne "Résumé" affiche la valeur "Conformité 1/1 règles".

INSTANCE    ASSIGNMENT_ID                                    LOCATION    UPDATE_TIME                  SUMMARY
instance-1  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant
instance-3  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant

Vérifier qu'une VM possède une étiquette de règle d'OS de l'Agent Ops

Pour savoir quelles VM de votre projet Google Cloud possèdent l'étiquette de règle d'OS de l'Agent Ops, goog-ops-agent-policy, utilisez la console Google Cloud ou gcloud CLI.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM :

    Accéder à la page Instances de VM

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Compute Engine.

  2. Sélectionnez le nom de votre VM.

  3. Dans le panneau Informations générales, localisez l'entrée Étiquettes.

    Si la VM est couverte par la règle d'OS de l'Agent Ops, elle possède une étiquette telle que goog-ops-agent-policy:v2-x86-template-1-0-0.

gcloud

Pour afficher toutes les VM portant l'étiquette de règle d'OS de l'Agent Ops goog-ops-agent-policy, exécutez la commande suivante :

gcloud compute instances list --format="table(name,zone,labels)" --filter="labels=goog-ops-agent-policy"

Le résultat affiche le nom, la zone et les étiquettes des VM. Exemple :

NAME                  ZONE           LABELS
test-vm1              us-central1-a  {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}
test-vm1              us-east4-c     {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}

Pour savoir si une VM spécifique possède l'étiquette de règle d'OS de l'Agent Ops, exécutez la commande suivante :

gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME

Le résultat affiche une liste d'étiquettes de votre VM. Si votre VM possède l'étiquette de règle d'OS de l'Agent Ops, goog-ops-agent-policy apparaît dans la liste labels. Exemple :

labels:
  goog-ops-agent-policy: v2-x86-template-1-0-0

Vérifier qu'une attribution de règle d'OS de l'Agent Ops a bien été déployée

Affichez les attributions de règles d'OS de votre projet Google Cloud pour vérifier qu'une attribution de règle d'OS de l'Agent Ops a été correctement déployée sur une zone spécifique.

Console

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

    Accéder aux règles d'OS

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Compute Engine.

  2. Pour afficher l'état des déploiements de règles d'OS, cliquez sur l'onglet Attributions de règles d'OS.

    Les attributions de règles d'OS de l'Agent Ops comportent des ID commençant par la chaîne "goog-ops-agent". Si l'attribution a bien été déployée, son état de déploiement est défini sur "Réussi".

gcloud

Pour afficher toutes les attributions de règles d'OS de l'Agent Ops dans une zone, exécutez la commande suivante :

gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

Le résultat affiche une liste des attributions de règles d'OS de l'Agent Ops dans une zone. Si l'attribution a bien été déployée, son état de déploiement est "RÉUSSI". Exemple :

ASSIGNMENT_ID                                       ROLLOUT_STATE    REVISION_CREATE_TIME       REVISION_ID    
goog-ops-agent-v2-x86-template-1-4-0-us-central1-b  SUCCEEDED        2023-01-28T05:23:41Z.      940df3e9-77fd-470b-84df-53fb24825c4a
goog-ops-agent-v2-x86-template-1-0-0-us-central1-b  SUCCEEDED        2022-01-28T05:23:41Z.      qwareaff-efte-erew-aeet-faer234t4gga

Pour afficher les détails d'une attribution de règle d'OS de l'Agent Ops spécifique, exécutez la commande suivante :

gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE

Désinstaller l'Agent Ops sur les VM couvertes par la règle d'OS de l'Agent Ops

Si vous désinstallez l'Agent Ops manuellement sur une VM couverte par la règle d'OS de l'Agent Ops, la règle la réinstalle. Pour désinstaller l'Agent Ops, vous devez d'abord supprimer l'étiquette goog-ops-agent-policy de la VM. Après avoir supprimé l'étiquette de règle d'OS de l'Agent Ops d'une VM, vous pouvez désinstaller l'Agent Ops de manière permanente.

Désinstaller l'Agent Ops sur une VM spécifique

Pour supprimer la règle et désinstaller l'Agent Ops d'une VM spécifique, vous pouvez utiliser la console Google Cloud ou gcloud CLI.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM :

    Accéder à la page Instances de VM

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Compute Engine.

  2. Sélectionnez le nom de la VM que vous souhaitez modifier.

  3. Cliquez sur Modifier.

  4. Accédez à la section Étiquettes, puis cliquez sur + Ajouter des étiquettes.

  5. Recherchez l'étiquette avec la clé goog-ops-agent-policy, puis cliquez sur Supprimer l'élément.

  6. Désinstaller l'agent

gcloud

  1. Pour supprimer l'étiquette goog-ops-agent-policy d'une VM, exécutez la commande suivante :

    gcloud compute instances update VM_NAME \
      --remove-labels=goog-ops-agent-policy
    
  2. Désinstaller l'agent

Désinstaller l'Agent Ops sur toutes les VM

Pour désinstaller l'Agent Ops des VM de la zone disposant d'une attribution de règle d'OS de l'Agent Ops, utilisez le script fourni par Cloud Monitoring. Vous ne pouvez pas désinstaller l'agent d'un groupe de VM à l'aide de la console Google Cloud.

Pour exécuter le script, vous devez disposer du rôle Éditeur GuestPolicy (roles/osconfig.guestPolicyEditor).

Exécutez le script suivant dans Cloud Shell. Vous pouvez indiquer un nombre illimité de zones :

curl -sSO https://dl.google.com/cloudagents/undo-ops-agent-policies.sh
bash undo-ops-agent-policies.sh ZONE1 ZONE2

Le script effectue les tâches suivantes dans chaque zone :

  1. Il trouve toutes les règles d'OS de l'Agent Ops.
  2. Il modifie chaque règle de sorte qu'elle désinstalle l'Agent Ops sur les VM qu'elle couvre.
  3. Il supprime la règle d'OS de l'Agent Ops.
  4. Il supprime l'étiquette goog-ops-agent-policy de chaque VM couverte.

Ajouter la couverture de la règle d'OS de l'Agent Ops à une VM existante

La règle d'OS de l'Agent Ops ne couvre que les VM portant l'étiquette goog-ops-agent-policy qui se trouvent dans la même zone qu'une attribution de règle d'OS de l'Agent Ops existante. Toutefois, vous pouvez étendre la couverture à d'autres VM créées sans que la règle d'OS de l'Agent Ops ne leur soit attribuée.

Pour étendre la couverture de la règle à une VM, vous devez connaître la version de modèle de l'attribution de règle d'OS de l'Agent Ops dans votre zone. Si votre zone comporte plusieurs attributions de règles d'OS de l'Agent Ops, recherchez l'attribution avec la dernière version du modèle. Pour afficher la liste des attributions de règles d'OS de l'Agent Ops dans une zone, exécutez la commande suivante :

gcloud compute os-config os-policy-assignments list --location=ZONE
  --filter="ASSIGNMENT_ID ~ goog-ops-agent"

Pour étendre la couverture de la règle à d'autres VM, utilisez la console Google Cloud ou gcloud CLI :

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM :

    Accéder à la page Instances de VM

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Compute Engine.

  2. Dans la liste Instances de VM, cochez les cases à côté des VM auxquelles vous souhaitez ajouter une étiquette, puis cliquez sur Étiquette.

  3. Pour ajouter des étiquettes, cliquez sur + Ajouter une étiquette et ajoutez la paire clé-valeur. La clé doit être goog-ops-agent-policy et la valeur correspond à la version de modèle souhaitée, par exemple 1-0-0.

  4. Enregistrez les modifications.

gcloud

Pour étendre la couverture de règle à une VM sans couverture, exécutez les commandes suivantes :

gcloud compute instances update VM_NAME --zone=ZONE
  --update-labels=goog-ops-agent-policy:v2-x86-template-1-0-0
gcloud compute instances add-metadata VM_NAME --zone=ZONE
  --metadata=enable-osconfig=TRUE

Autorisation

L'installation de l'agent Ops utilise VM Manager et nécessite des autorisations pour activer l'API VM Manager et créer une règle. Les autorisations requises sont toutes disponibles à l'aide du rôle Éditeur (roles/Editor). Vous pouvez également demander à un administrateur du projet d'accorder les autorisations minimales à l'aide de Google Cloud CLI.

Autorisations requises pour installer l'agent Ops lors de la création de la VM :

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectBillingConfigs.update
  • compute.instances.create

Autorisations requises pour installer l'agent Ops sur les VM existantes :

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectBillingConfigs.update
  • compute.instances.setMetadata
  • compute.instances.setLabels

Vous pouvez trouver les rôles correspondants qui fournissent ces autorisations dans la documentation de référence sur les rôles de base et prédéfinis IAM, à l'exception de l'autorisation osconfig.projectBillingConfigs.update. Cette autorisation est incluse dans le rôle osconfig.projectBillingConfig. Ce rôle n'est pas disponible dans la console Google Cloud, mais il peut être attribué via gcloud CLI.

Exemples de commandes permettant d'accorder des rôles :

gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectBillingConfigEditor'