VM Extension Manager utilise des règles d'extension pour gérer vos extensions de VM à grande échelle. Pour en savoir plus, consultez À propos de VM Extension Manager. Ce document explique comment afficher, modifier et supprimer des règles d'extension de VM.
Rôles et autorisations IAM
Pour obtenir les autorisations nécessaires pour afficher, modifier et supprimer des stratégies d'extension de VM, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Pour afficher les règles des extensions :
-
Lecteur de la stratégie d'extension de VM (
roles/compute.vmExtensionPolicyViewer) -
Administrateur de stratégies d'extension de VM (
roles/compute.vmExtensionPolicyAdmin)
-
Lecteur de la stratégie d'extension de VM (
-
Pour modifier les règles d'extension :
Administrateur des règles d'extension de VM (
roles/compute.vmExtensionPolicyAdmin) -
Pour supprimer des règles d'extension :
Administrateur des règles 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.
Ces rôles prédéfinis contiennent les autorisations requises pour afficher, modifier et supprimer les stratégies d'extension de VM. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour afficher, modifier et supprimer des règles d'extension de VM :
-
Pour afficher les règles des extensions :
compute.vmExtensionPolicies.list -
Pour afficher les détails d'une règle d'extension :
compute.vmExtensionPolicies.get -
Pour modifier les règles d'extension :
compute.vmExtensionPolicies.update -
Pour supprimer des règles d'extension :
compute.vmExtensionPolicies.delete
Vous pouvez également obtenir ces autorisations 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.
Afficher les règles relatives aux extensions
Vous pouvez afficher la liste des règles d'extension de VM dans votre projet ou les détails d'une règle spécifique à l'aide de la console Google Cloud ou de Google Cloud CLI.
Console
- Dans la console Google Cloud , accédez à la page Règles d'extension de VM. Cette page répertorie toutes les règles d'extension de VM de votre projet.
- Pour afficher les détails d'une règle d'extension spécifique, cliquez sur son nom.
gcloud
Pour afficher toutes les règles d'extension d'un projet, exécutez la commande gcloud beta compute zone-vm-extension-policies list :
gcloud beta compute zone-vm-extension-policies list \ --project=PROJECT_ID \ --zone=ZONE \ --page-size=PAGE_SIZE
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .ZONE: nom de la zone dans laquelle vous souhaitez lister les règles d'extension de VM.PAGE_SIZE: nombre maximal de résultats à renvoyer par page.
Pour afficher les détails d'une règle d'extension spécifique, utilisez la commande gcloud beta compute zone-vm-extension-policies describe :
gcloud beta compute zone-vm-extension-policies describe POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'extension de VM que vous souhaitez décrire.PROJECT_ID: ID de votre projet Google Cloud .ZONE: Google Cloud zone où se trouve la stratégie d'extension de VM.
Modifier des extensions en mettant à jour une règle d'extension de VM
Lorsque vous mettez à jour une règle, VM Extension Manager déploie les modifications sur toutes les VM applicables, généralement en une minute. Si vous modifiez les libellés d'inclusion, des extensions peuvent être installées sur de nouvelles VM ou désinstallées de VM existantes selon qu'elles correspondent ou non aux libellés mis à jour.
Console
- Dans la console Google Cloud , accédez à la page Règles d'extension de VM.
- Sélectionnez le règlement que vous souhaitez modifier.
- Cliquez sur Modifier.
- Modifiez la description, la priorité, les extensions ou les instances de VM cibles.
- Cliquez sur Enregistrer.
gcloud
Utilisez la commande gcloud beta compute zone-vm-extension-policies update pour modifier une stratégie d'extension de VM existante. Lorsque vous mettez à jour une règle à l'aide de gcloud, la requête remplace complètement la règle existante. Tous les champs facultatifs que vous omettez reviennent à leur valeur par défaut au lieu de conserver les valeurs existantes de la règle modifiée.
Pour mettre à jour une règle d'extension de VM, exécutez la commande suivante :
gcloud beta compute zone-vm-extension-policies update POLICY_NAME \ --zone=ZONE \ --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_NUMBER \ --description="DESCRIPTION"
Remplacez les éléments suivants :
POLICY_NAME: nom de la stratégie d'extension de VM à mettre à jour.ZONE: zone Google Cloud où s'applique la règle.EXTENSION_NAME_1,EXTENSION_NAME_2: noms des extensions à mettre à jour. Vous devez spécifier au moins une extension.VERSION_1: version de la première extension de VM.VERSION_2: version de la deuxième extension de VM.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 commandegcloud, 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
--configau lieu de--config-from-file, par exempleEXTENSION_NAME_1="CONFIG_1". Vous pouvez utiliser--config-from-fileou--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-labelsplusieurs 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_NUMBER: numéro de priorité de la stratégie d'extension de VM.DESCRIPTION: description de la règle d'extension de VM.
Désinstaller des extensions en supprimant une règle d'extension de VM
Lorsque vous supprimez une règle, VM Extension Manager désinstalle les extensions de toutes les VM gérées par cette règle. Toutefois, si une autre règle active de priorité inférieure s'applique à une VM et déclare la même extension, l'extension reste installée sur cette VM en fonction de la règle de priorité inférieure.
VM Extension Manager supprime les extensions de toutes les VM accessibles dans la minute qui suit la suppression de la règle. Si une VM est inaccessible parce que l'agent invité a été supprimé ou que la VM a été supprimée, VM Extension Manager ignore la suppression de l'extension. Si une telle VM redevient disponible, VM Extension Manager supprime les extensions à ce moment-là.
Console
- Dans la console Google Cloud , accédez à la page Règles d'extension de VM.
- Sélectionnez la règle que vous souhaitez supprimer.
- Cliquez sur Supprimer.
- Dans la boîte de dialogue de confirmation, cliquez sur Supprimer.
gcloud
Utilisez la commande gcloud beta compute zone-vm-extension-policies delete pour supprimer une règle d'extension de VM existante.
gcloud beta compute zone-vm-extension-policies delete POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'extension de VM que vous souhaitez supprimer.PROJECT_ID: ID de votre projet Google Cloud .ZONE: zone Google Cloud où se trouve la règle.
Résoudre les problèmes liés aux extensions de VM
Cette section explique comment résoudre les problèmes liés aux extensions de VM.
Vérifier qu'une extension est installée
Pour vérifier qu'une extension est installée, vérifiez les points suivants sur la VM :
Connectez-vous à la VM et vérifiez les processus en cours d'exécution.
Le tableau suivant répertorie les noms de processus pour chaque extension :
Nom de l'extension Nom du processus d'extension google-cloud-sap-extensiongoogle_cloud_sap_agentgoogle-cloud-workload-extensiongoogle_cloud_workload_agentops-agentops-agentLinux
Remplacezps aux | grep 'EXTENSION_PROCESS_NAME'
EXTENSION_PROCESS_NAMEpar le nom du processus de l'extension. Par exemple, pour vérifier le processus de l'agent Ops, exécutez la commande suivante :ps aux | grep 'ops-agent'
Windows
Remplaceztasklist | findstr "EXTENSION_PROCESS_NAME"
EXTENSION_PROCESS_NAMEpar le nom du processus de l'extension. Par exemple, pour vérifier le processus de l'agent Ops, exécutez la commande suivante :tasklist | findstr "ops-agent"
Le résultat de la commande
pssur une VM Linux pour l'agent Ops peut afficher une entrée semblable à la suivante :.... /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3 ....
Activer et examiner les journaux de l'agent invité Les journaux de l'agent invité indiquent quand une extension est installée et démarrée.
Voici un exemple de sortie que vous pouvez voir dans les journaux de l'agent invité lorsqu'une extension de l'agent Ops est installée :
my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87" my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]] my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-centrall-a/ops-agent my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87 my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87) my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"
Résoudre les problèmes d'installation
Si une extension n'est pas installée sur une VM après la création d'une règle, procédez comme suit pour résoudre le problème :
- Attendez que les règles soient appliquées. L'application d'une règle peut prendre jusqu'à une heure, y compris les éventuelles tentatives.
- Vérifiez que les étiquettes d'inclusion spécifiées dans la règle correspondent à celles de la VM.
- Pour identifier les éventuelles erreurs d'installation, activez la journalisation du débogage pour l'agent invité.
Une fois le problème sous-jacent résolu, réessayez l'installation à l'aide de l'une des méthodes suivantes :
- Recréez la règle : supprimez-la, puis créez-en une autre.
Utilisez une règle temporaire de haute priorité : si vous souhaitez éviter de recréer une règle qui affecte de nombreuses VM, utilisez une règle temporaire de priorité plus élevée pour réessayer l'installation sur des VM spécifiques :
- Ajoutez une étiquette aux VM pour lesquelles l'installation a échoué. Par exemple, ajoutez un libellé
status=failed. - Créez une règle de priorité supérieure qui cible le nouveau libellé.
Par exemple, si la stratégie d'origine qui a échoué avait la priorité par défaut de
1000, créez une stratégie avec une priorité plus élevée, telle que500.gcloud beta compute zone-vm-extension-policies create temp-policy
--project=test-project
--zone=us-central1-f
--extensions=ops-agent
--config-from-file=ops-agent="/usr/ops-agent-config.yaml"
--priority=500
--inclusion-labels=status=failed - Une fois l'extension installée, supprimez la règle temporaire et supprimez le libellé des VM. L'extension reste installée, car la règle d'origine est toujours active.
- Ajoutez une étiquette aux VM pour lesquelles l'installation a échoué. Par exemple, ajoutez un libellé
Afficher les journaux de débogage de l'agent invité
Pour activer la journalisation du débogage, ajoutez les paramètres de niveau de journalisation et de niveau de détail à la section Core du fichier de configuration de l'agent invité comme suit :
Linux
- Ouvrez le fichier de configuration de l'agent invité situé sous
/etc/default/instance_configs.cfg. Ajoutez les lignes suivantes au fichier. Si la section
[Core]existe déjà, ajoutez-y les paramètreslog_leveletlog_verbosity.[Core] log_level = 4 log_verbosity = 4Redémarrez le gestionnaire d'agent invité en exécutant la commande suivante :
sudo systemctl restart google-guest-agent-managerPour afficher les journaux de l'activité de l'agent invité lors de l'installation de l'extension, exécutez la commande suivante :
journalctl -u google-guest-agent-manager
Windows
- Ouvrez le fichier de configuration de l'agent invité situé à l'adresse
C:\Program Files\Google\Compute Engine\instance_configs.cfg. Ajoutez les lignes suivantes au fichier. Si la section
[Core]existe déjà, ajoutez-y les paramètreslog_leveletlog_verbosity.[Core] log_level = 4 log_verbosity = 4Redémarrez le gestionnaire d'agents invités en exécutant la commande suivante en tant qu'administrateur Windows :
net stop GCEAgentManager net start GCEAgentManagerPour afficher les journaux d'activité de l'agent invité lors de l'installation de l'extension, exécutez la commande suivante dans PowerShell :
Get-Eventlog -Source google_guest_agent_manager -LogName Application
Après avoir activé les journaux de débogage, recherchez les erreurs courantes suivantes :
- Espace disque insuffisant : si les journaux indiquent que l'espace disque est insuffisant, libérez de l'espace sur le disque ou redimensionnez-le pour en ajouter.
- Utilisation excessive des ressources : si les journaux indiquent que l'agent invité a arrêté l'extension en raison d'une utilisation excessive de la mémoire ou du processeur, remplacez le type de machine de la VM par un type disposant de davantage de ressources.
Étapes suivantes
- En savoir plus sur VM Extension Manager