In diesem Dokument wird beschrieben, wie Sie VM-Erweiterungsrichtlinien erstellen, mit denen Sie Erweiterungen automatisch auf einer Flotte von Compute Engine-VMs installieren und verwalten können. Durch das Definieren einer Richtlinie können Sie dafür sorgen, dass bestimmte Erweiterungen auf allen VMs installiert und verwaltet werden, die von Ihnen angegebene Kriterien wie VM-Labels erfüllen.
Hinweise
- Installieren Sie die Betakomponente mit dem folgenden Befehl:
gcloud components install beta
- Grundlagen zu VM Extension Manager
- VM Extension Manager-Kontingente
- Aktivieren Sie die Compute Engine API in Ihrem Google Cloud Projekt, falls sie noch nicht aktiviert ist.
- Achten Sie darauf, dass auf Ihrer VM die Gast-Agent-Version
20241209.01oder höher ausgeführt wird. - Wenn Sie Debug-Logs für VM Extension Manager-Ereignisse aufrufen möchten, konfigurieren Sie die Logeinstellungen für den Gast-Agent.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
- Set a default region and zone.
Erforderliche IAM-Rollen
Um die Berechtigung zum Erstellen einer Erweiterungsrichtlinie zu erhalten, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle VM Extension Policy Admin (
roles/compute.vmExtensionPolicyAdmin) zuzuweisen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.Diese vordefinierte Rolle enthält die Berechtigung
compute.vmExtensionPolicies.create, die zum Erstellen einer Erweiterungsrichtlinie erforderlich ist.Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu IAM-Rollen und ‑Berechtigungen in Compute Engine finden Sie unter Compute Engine-Rollen und ‑Berechtigungen.
Richtlinienpriorität und Konfliktlösung
Wenn mehrere Richtlinien für dieselbe VM gelten, verwendet der VM Extension Manager die Richtlinienpriorität, um Konflikte zu lösen.
Wenn zwei Richtlinien für dieselbe Erweiterung in Konflikt stehen, hat die Richtlinie mit der höheren Priorität Vorrang. Die Prioritätswerte reichen von 0 bis 65.535, wobei eine niedrigere Zahl eine höhere Priorität bedeutet. Die Standardpriorität ist 1.000. Wenn mehrere Richtlinien dieselbe Priorität haben, wendet der VM Extension Manager die zuletzt aktualisierte Richtlinie auf die VMs an. Wenn Sie eine Richtlinie löschen, wird die Erweiterung nicht entfernt, wenn eine Richtlinie mit niedrigerer Priorität weiterhin auf die VM angewendet wird.
Globale VM-Erweiterungsrichtlinie erstellen
Sie können eine globale VM-Erweiterungsrichtlinie erstellen, um Erweiterungen gemäß einem Roll-out-Plan auf VMs in mehreren Zonen in Ihrem Projekt zu installieren. Eine globale VM-Erweiterungsrichtlinie wird nicht direkt auf VMs angewendet. Stattdessen erstellt VM Extension Manager im Rahmen des Rollouts der Richtlinie Richtlinien in jeder Zone basierend auf dem Rollout-Plan. Mit diesen Richtlinien wird dann die Installation von Erweiterungen auf VMs in den jeweiligen Zonen verwaltet.
Sie können globale Erweiterungsrichtlinien entweder mit der gcloud CLI oder mit der Methode
globalVmExtensionPolicies.inserterstellen.Roll-out-Pläne
Globale VM-Erweiterungsrichtlinien verwenden Rollout-Pläne, um die Bereitstellung von Erweiterungen an verschiedenen Standorten zu verwalten. Sie können einen der vordefinierten Rollout-Pläne verwenden oder einen benutzerdefinierten Rollout-Plan erstellen.
Vordefinierte Roll-out-Pläne
slow_rollout: Die Richtlinie wird über fünf Tage hinweg eingeführt. Der langsame Rollout ist der Standard-Rolloutplan.fast_rollout: Die Richtlinie wird sofort für alle Zonen eingeführt.
Benutzerdefinierte Einführungspläne
Sie können benutzerdefinierte Rollout-Pläne mit der Methode
rolloutPlans.inserterstellen. Im folgenden JSON wird beispielsweise ein Rollout-Plan namenstest-rollout-plandefiniert, der auf zwei Zonen ausgerichtet ist:{ "name": "test-rollout-plan", "waves": [ { "selectors": [ { "locationSelector": { "includedLocations": [ "us-central1-a", "us-west1-a" ] } } ], "validation": { "type": "time", "timeBasedValidationMetadata": { "waitDuration": "0s" } }, "orchestrationOptions": { "maxConcurrentResourcesPerLocation": "10", "maxConcurrentLocations": "10" } } ] }
Sie können diesen benutzerdefinierten Rollout-Plan dann beim Erstellen einer globalen Richtlinie verwenden, wie in Beispiel 2 gezeigt.
Globale Richtlinie erstellen
Verwenden Sie den Befehl
gcloud beta compute global-vm-extension-policies create, um eine globale Richtlinie für VM-Erweiterungen zu erstellen:gcloud beta compute global-vm-extension-policies create POLICY_NAME
--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
--rollout-predefined-plan=ROLLOUT_PLAN
--rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIORErsetzen Sie Folgendes:
POLICY_NAME: Ein Name für die VM-Erweiterungsrichtlinie.DESCRIPTION: eine optionale Beschreibung der Richtlinie.EXTENSION_NAME_1,EXTENSION_NAME_2: Eine durch Kommas getrennte Liste von Erweiterungen, die der Richtlinie hinzugefügt werden sollen. Sie müssen mindestens eine Erweiterung angeben. Gültige Werte für die Erweiterungen sind:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: Eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren, wobei der Schlüssel der Name der Erweiterung und der Wert die Version der Erweiterung ist. Wenn Sie keine Version für eine Erweiterung angeben, verwendet VM Extension Manager die neueste verfügbare Version und führt automatisch ein Upgrade durch, wenn neue Versionen verfügbar werden.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: Eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren, wobei der Schlüssel der Name der Erweiterung und der Wert der Pfad zur Konfigurationsdatei für diese Erweiterung ist. Diese Datei befindet sich auf der VM, auf der Sie den Befehlgcloudausführen, nicht auf der VM, auf der Sie die Erweiterung installieren.Alternativ können Sie die Konfiguration als Inline-String angeben. Verwenden Sie dazu das Flag
--configanstelle von--config-from-file, z. B.EXTENSION_NAME_1="CONFIG_1". Sie können entweder--config-from-fileoder--configverwenden, aber nicht beides im selben Befehl.KEY_1=VALUE_1: Eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren, die Einschlusslabels für einen Selektor definieren. VMs müssen alle angegebenen Labels in einem Selektor haben, damit sie als Ziel infrage kommen. Wenn Sie--inclusion-labelsmehrmals angeben, richtet sich die Richtlinie an VMs, die einen beliebigen der angegebenen Selektoren entsprechen (logisches ODER). Wenn Sie dieses Flag weglassen, gilt die Richtlinie für alle VMs in Ihrem Projekt in allen Zonen.PRIORITY: Eine Ganzzahl, die die Priorität der Richtlinie definiert. Größere Zahlen stehen für eine höhere Priorität. Der Standardwert ist 0. Wenn mehrere Richtlinien dieselbe Priorität haben, wird die Richtlinie, die zuletzt aktualisiert wurde, auf die VMs angewendet.ROLLOUT_PLAN: Geben Sieslow_rolloutoderfast_rolloutan. Wenn Sie einen benutzerdefinierten Einführungsplan verwenden möchten, verwenden Sie das Flag--rollout-custom-plananstelle von--rollout-predefined-planund geben Sie den Namen des Plans an, z. B.:--rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAMEErsetzen Sie Folgendes:
PROJECT_NUMBER: Das Projekt, in dem der Roll-out-Plan definiert ist.ROLLOUT_PLAN_NAME: Der Name des benutzerdefinierten Roll-out-Plans, den Sie definiert haben. Wenn kein Flag für den Roll-out-Plan angegeben ist, wirdslow_rolloutverwendet.
ROLLOUT_CONFLICT_BEHAVIOR: Gibt das Verhalten an, wenn ein Konflikt zwischen einer zonalen und einer globalen Richtlinie erkannt wird. Folgende Werte sind möglich:""(leerer String): Der zonale Richtlinienwert wird verwendet.overwrite: Die globale Richtlinie überschreibt die zonale Richtlinie.Weitere Informationen finden Sie unter Flag
--rollout-conflict-behavior.
Beispiel 1
Mit dem folgenden Befehl wird eine Richtlinie mit dem Namen
global-test-extension-policyerstellt, mit der die Erweiterungops-agentfür das Projekttest-projectinstalliert wird. Das Flag--config-from-filegibt den Pfad zu einer lokalen Datei mit einer YAML-Konfiguration für den Ops-Agenten an und--rollout-predefined-plangibt denslow_rollout-Plan an.gcloud beta compute global-vm-extension-policies create global-test-extension-policy \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --rollout-predefined-plan=slow_rollout
Beispiel 2
Mit dem folgenden Befehl wird eine Richtlinie namens
global-test-extension-policy-2erstellt, mit der die Erweiterungops-agentfür das Projekttest-projectauf VMs mit dem Labelenv=prodinstalliert wird. Die Richtlinienpriorität ist auf500festgelegt und das Flag--config-from-filegibt den Pfad zu einer lokalen Datei mit einer YAML-Konfiguration für den Ops-Agent an. Das Flag--rollout-custom-plangibt einen benutzerdefinierten Roll-out-Plan an.gcloud beta compute global-vm-extension-policies create global-test-extension-policy-2 \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod \ --rollout-custom-plan=projects/12345678/locations/global/rolloutPlans/test-rollout-plan
Zonale VM-Erweiterungsrichtlinie erstellen
Verwenden Sie eine der folgenden Methoden, um eine zonale VM-Erweiterungsrichtlinie zu erstellen. Mit dieser zonalen Richtlinie wird festgelegt, welche Erweiterungen auf welchen VMs in einer bestimmten Zone installiert werden sollen.
Console
- Rufen Sie in der Google Cloud Console die Seite VM-Erweiterungsrichtlinien auf.
- Klicken Sie auf Erweiterungsrichtlinie erstellen.
- Geben Sie im Feld Name einen Namen für die Richtlinie ein.
- Optional: Geben Sie im Feld Beschreibung eine Beschreibung für die Richtlinie ein.
- Geben Sie im Feld Priorität eine Prioritätsnummer an, um Konflikte zwischen Richtlinien zu beheben. Niedrigere Zahlen bedeuten eine höhere Priorität. Der Standardwert ist 1.000.
- Wählen Sie in der Liste Zone die Zone aus, in der Sie diese Richtlinie anwenden möchten.
- Klicken Sie im Bereich Erweiterungen auf Erweiterung hinzufügen und gehen Sie für jede Erweiterung, die Sie auf den Ziel-VMs installieren möchten, so vor:
- Wählen Sie in der Liste Erweiterung eine Erweiterung aus. Weitere Informationen zu unterstützten Erweiterungen
- Geben Sie in der Liste Version die Versionsnummer der Erweiterung an. Lassen Sie das Feld leer, um die neueste Version auszuwählen.
- Für den Ops-Agent können Sie die Version
2.58.0oder höher angeben. - Lassen Sie das Feld für die Erweiterung für SAP und die Erweiterung für Compute-Arbeitslasten leer, um die aktuelle Version auszuwählen.
- Für den Ops-Agent können Sie die Version
- Optional: Geben Sie im Feld Inhalt der Konfigurationsdatei Konfigurationsparameter für die Erweiterung ein.
- Wählen Sie im Abschnitt Ziel-VM-Instanzen die VMs für die Richtlinie aus. Wenn Sie VMs mit bestimmten Labels auswählen möchten, klicken Sie auf Labels hinzufügen und fügen Sie das Schlüssel/Wert-Paar hinzu.
- Klicken Sie auf Erstellen.
gcloud
Wenn Sie eine zonale VM-Erweiterungsrichtlinie erstellen und die Richtlinie auf VMs in einer bestimmten Zone anwenden möchten, verwenden Sie den Befehl
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
Ersetzen Sie Folgendes:
POLICY_NAME: Ein Name für die VM-Erweiterungsrichtlinie.ZONE: die Zone, in der diese Richtlinie gilt.DESCRIPTION: eine optionale Beschreibung der Richtlinie.EXTENSION_NAME_1,EXTENSION_NAME_2: Eine durch Kommas getrennte Liste der Erweiterungen, die der Richtlinie hinzugefügt werden sollen. Sie müssen mindestens eine Erweiterung angeben. Gültige Werte für die Erweiterungen sind:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: Eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren, wobei der Schlüssel der Name der Erweiterung und der Wert die Version der Erweiterung ist. Wenn Sie keine Version für eine Erweiterung angeben, verwendet VM Extension Manager die neueste verfügbare Version und führt automatisch ein Upgrade durch, wenn neue Versionen verfügbar werden.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren, wobei der Schlüssel der Name der Erweiterung und der Wert der Pfad zur Konfigurationsdatei für diese Erweiterung ist. Dieser Pfad befindet sich auf der VM, auf der Sie dengcloud-Befehl ausführen, nicht auf der VM, auf der Sie die Erweiterung installieren.Alternativ können Sie die Konfiguration als Inline-String angeben. Verwenden Sie dazu das Flag
--configanstelle von--config-from-file, z. B.EXTENSION_NAME_1="CONFIG_1". Sie können entweder--config-from-fileoder--configverwenden, aber nicht beides im selben Befehl.KEY_1=VALUE_1: Eine durch Kommas getrennte Liste von Schlüssel/Wert-Paaren, die Einschlusslabels für einen Selektor definieren. VMs müssen alle angegebenen Labels in einem Selektor haben, damit sie als Ziel infrage kommen. Wenn Sie--inclusion-labelsmehrmals angeben, richtet sich die Richtlinie an VMs, die einen beliebigen der angegebenen Selektoren entsprechen (logisches ODER). Wenn Sie dieses Flag weglassen, gilt die Richtlinie für alle VMs in der angegebenen Zone.PRIORITY: Eine Ganzzahl zwischen 0 und 65.535, die die Priorität der Richtlinie definiert. Niedrigere Zahlen bedeuten eine höhere Priorität. Der Standardwert ist 1.000.Der Befehl schlägt fehl, wenn in der Zone bereits eine Richtlinie mit dem angegebenen Namen vorhanden ist.
Beispiel 1
Mit dem folgenden Befehl wird eine Richtlinie mit dem Namen
test-extension-policyerstellt, mit der die Erweiterungops-agentin der Zoneus-central1-ffür das Projekttest-projectinstalliert wird. Das Flag--config-from-filegibt den Pfad zu einer lokalen Datei mit einer YAML-Konfiguration für den Ops-Agent an.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"
Beispiel 2
Mit dem folgenden Befehl wird eine Richtlinie mit dem Namen
test-extension-policy-2erstellt, die die Erweiterungops-agentin der Zoneus-central1-ffür das Projekttest-projectauf VMs mit dem Labelenv=prodinstalliert. Die Richtlinienpriorität ist auf500festgelegt und das Flag--config-from-filegibt den Pfad zu einer lokalen Datei mit einer YAML-Konfiguration für den Ops-Agent an.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
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2026-01-24 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2026-01-24 (UTC)."],[],[]] -