Wenn Sie Compute Engine-VMs mit dem Ops-Agent erstellt haben, der während der Erstellung installiert wurde, oder wenn Sie in einigen Fällen den Agent mithilfe der Google Cloud Console auf vorhandenen VMs installiert haben, dann hat Google Cloud auch VM Manager-Betriebssystemrichtlinien erstellt, die den Ops-Agent installieren und überwachen. In diesem Dokument wird beschrieben, wie Sie diese Ops-Agent-Betriebssystemrichtlinien abfragen und den Ops-Agent auf VMs verwalten, die von den Richtlinien abgedeckt werden. Informationen zum Erstellen von VMs mit dem Ops-Agent, wenn dieser automatisch installiert wird, finden Sie unter Ops-Agent während der VM-Erstellung installieren.
Nachdem eine Ops-Agent-Betriebssystemrichtlinie erstellt wurde, können Sie Folgendes tun:
- Ermitteln, welche VMs von der Richtlinie abgedeckt werden
- Ermitteln, welche Zonen von der Richtlinie abgedeckt werden
- Erweitern der Richtlinienabdeckung auf vorhandene VMs
- Deinstallieren des Agents von einer VM, die von der Richtlinie abgedeckt wird.
VMs suchen, die von Ops-Agent-Betriebssystemrichtlinien abgedeckt sind
Sie können die Google Cloud Console oder die Google Cloud CLI verwenden, um über eine Betriebssystemrichtlinienzuweisung zu sehen, welche VMs in Ihrem Google Cloud-Projekt von den Ops-Agent-Betriebssystemrichtlinien abgedeckt sind. Wenn Sie der Meinung sind, dass eine VM nicht abgedeckt ist, können Sie die folgenden Schritte zur Fehlerbehebung ausführen:
- Prüfen Sie, ob eine VM ein Ops-Agent-Betriebssystemrichtlinien-Label hat.
- Prüfen Sie, ob die Zuweisung einer Ops-Agent-Betriebssystemrichtlinie erfolgreich eingeführt wurde.
Prüfen Sie, ob VMs in einer Zone eine Ops-Agent-Betriebssystemrichtlinie zugewiesen wird.
Prüfen Sie mit der Google Cloud Console oder mit der gcloud CLI, ob die VM in einer Zone von der Ops-Agent-Betriebssystemrichtlinie abgedeckt wird. So können Sie feststellen, ob die VM mit einer Ops-Agent-Betriebssystemrichtlinie verknüpft ist.
Console
-
Öffnen Sie in der Google Cloud Console die Seite Betriebssystemrichtlinien:
Zu „Betriebssystemrichtlinien“
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine ist.
Wählen Sie auf dem Tab VM-Instanzen die VM aus, die Sie prüfen möchten.
Wenn die VM von einer Ops-Agent-Betriebssystemrichtlinie abgedeckt ist, enthält die Spalte OS-Richtlinien-ID
goog-ops-agent-policy
und der Status „Konform“.
gcloud
Führen Sie den folgenden Befehl aus, um eine Liste der Zuweisungen von Ops-Agent-Betriebssystemrichtlinien in einer Zone aufzurufen:
gcloud compute os-config os-policy-assignment-reports list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"
Die Ausgabe zeigt eine Liste von VMs mit einer Zuweisung von Ops-Agent-Betriebssystemrichtlinien. Wenn der Ops-Agent auf der VM installiert ist, enthält die Spalte "Zusammenfassung" den Wert "1/1-Richtlinien kompatibel".
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
Prüfen Sie, ob eine VM ein Ops-Agent-Betriebssystemrichtlinien-Label hat
Verwenden Sie entweder die Google Cloud Console oder die gcloud CLI, um zu sehen, welche VMs in Ihrem Google Cloud-Projekt das Ops-Agent-Betriebssystemrichtlinienlabel goog-ops-agent-policy
haben.
Console
-
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine ist.
Wählen Sie den Namen Ihrer VM aus.
Suchen Sie im Bereich Allgemeine Informationen nach dem Eintrag Labels.
Wenn die VM von der Betriebssystemrichtlinie des Ops-Agents abgedeckt ist, hat sie ein Label wie
goog-ops-agent-policy:v2-x86-template-1-0-0
.
gcloud
Führen Sie den folgenden Befehl aus, um alle VMs mit dem Richtlinienlabel goog-ops-agent-policy
des Ops-Agent-Betriebssystems aufzurufen:
gcloud compute instances list --format="table(name,zone,labels)" --filter="labels=goog-ops-agent-policy"
Die Ausgabe zeigt den Namen, die Zone und die Labels der VMs an. Beispiel:
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'}
Führen Sie den folgenden Befehl aus, um festzustellen, ob eine bestimmte VM das Ops-Agent-Betriebssystemrichtlinienlabel hat:
gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME
Die Ausgabe zeigt eine Liste der Labels für Ihre VM an. Wenn Ihre VM das Ops-Agent-Betriebssystemrichtlinienlabel hat, wird goog-ops-agent-policy
in der labels
-Liste angezeigt. Beispiel:
labels: goog-ops-agent-policy: v2-x86-template-1-0-0
Prüfen Sie, ob die Zuweisung einer Ops-Agent-Betriebssystemrichtlinie erfolgreich eingeführt wurde
Rufen Sie die Zuweisungen Ihrer Betriebssystemrichtlinien für das Google Cloud-Projekt auf, um zu prüfen, ob eine Zuweisung des Ops-Agent-Betriebssystemrichtlinien in einer bestimmten Zone korrekt bereitgestellt wurde.
Console
-
Öffnen Sie in der Google Cloud Console die Seite Betriebssystemrichtlinien:
Zu „Betriebssystemrichtlinien“
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine ist.
Klicken Sie auf den Tab Zuweisungen von Betriebssystemrichtlinien, um den Status der Rollouts von Betriebssystemrichtlinien aufzurufen.
Zuweisungen von Ops-Agent-Betriebssystemrichtlinien haben IDs, die mit dem String "goog-ops-agent" beginnen. Wenn die Zuweisung erfolgreich eingeführt wurde, hat sie den Rollout-Status "Erfolgreich".
gcloud
Führen Sie den folgenden Befehl aus, um alle Zuweisungen des Ops-Agent-Betriebssystemrichtlinien in einer Zone aufzurufen:
gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"
Die Ausgabe zeigt eine Liste der Zuweisungen von Ops-Agent-Betriebssystemrichtlinien in einer Zone. Wenn die Zuweisung erfolgreich eingeführt wurde, hat sie den Rollout-Status "ERFOLGREICH". Beispiel:
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
Führen Sie den folgenden Befehl aus, um Details zu einer bestimmten Zuweisung von Ops-Agent-Betriebssystemrichtlinien aufzurufen:
gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE
Ops-Agent auf VMs deinstallieren, die von der Ops-Agent-Betriebssystemrichtlinie abgedeckt werden
Wenn Sie den Ops-Agent manuell auf einer VM deinstallieren, die von der Ops-Agent-Betriebssystemrichtlinie abgedeckt ist, wird er von der Richtlinie neu installiert. Sie müssen zuerst das Label goog-ops-agent-policy
von der VM entfernen, um den Ops-Agent zu deinstallieren. Nachdem Sie das Richtlinien-Label des Ops-Agent-Betriebssystems von einer VM entfernt haben, können Sie den Ops-Agent dauerhaft deinstallieren.
Ops-Agent auf einer bestimmten VM deinstallieren
Wenn Sie die Richtlinie entfernen und den Ops-Agent von einer bestimmten VM deinstallieren möchten, können Sie die Google Cloud Console oder die gcloud CLI verwenden.
Console
-
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine ist.
Wählen Sie den Namen der VM aus, die Sie bearbeiten möchten.
Klicken Sie auf Bearbeiten.
Gehen Sie zum Abschnitt Label und klicken Sie auf + Labels hinzufügen.
Suchen Sie das Label mit dem Schlüssel
goog-ops-agent-policy
und klicken Sie auf Element löschen.
gcloud
Führen Sie den folgenden Befehl aus, um das Label
goog-ops-agent-policy
von einer VM zu entfernen:gcloud compute instances update VM_NAME \ --remove-labels=goog-ops-agent-policy
Ops-Agent auf allen VMs deinstallieren
Verwenden Sie das von Cloud Monitoring bereitgestellte Skript, um den Ops-Agent von VMs in Zone zu deinstallieren, für die eine Ops-Agent-Betriebssystemrichtlinie zugewiesen ist. Sie können den Agent mithilfe der Google Cloud Console nicht aus einer Gruppe von VMs deinstallieren.
Zum Ausführen des Skripts benötigen Sie die Rolle GuestPolicy-Bearbeiter (roles/osconfig.guestPolicyEditor
).
Führen Sie in Cloud Shell das folgende Skript aus. Sie können eine beliebige Anzahl von Zonen angeben:
curl -sSO https://dl.google.com/cloudagents/undo-ops-agent-policies.sh bash undo-ops-agent-policies.sh ZONE1 ZONE2
Das Skript führt in jeder Zone die folgenden Aufgaben aus:
- Findet alle Betriebssystemrichtlinien für Ops-Agenten.
- Aktualisiert jede Richtlinie, sodass der Ops-Agent auf den abgedeckten VMs deinstalliert wird.
- Löscht die Ops-Agent-Betriebssystemrichtlinie.
- Entfernt das Label
goog-ops-agent-policy
von jeder abgedeckten VM.
Ops-Agent-Betriebssystemrichtlinie einer vorhandenen VM hinzufügen
Die Ops-Agent-Betriebssystemrichtlinie deckt nur VMs mit dem Label goog-ops-agent-policy
ab und befinden sich in derselben Zone wie eine vorhandene Ops-Agent-Betriebssystemrichtlinie. Sie können die Abdeckung jedoch auf andere VMs ausweiten, die ohne die ihnen zugewiesene Ops-Agent-Betriebssystemrichtlinie erstellt wurden.
Zum Erweitern der Richtlinienabdeckung auf eine VM benötigen Sie die Vorlagenversion der Richtlinienzuweisung für das Ops-Agent-Betriebssystem in Ihrer Zone. Wenn Ihre Zone mehrere Zuweisungen von Ops-Agent-Betriebssystemrichtlinien hat, suchen Sie die Zuweisung mit der neuesten Vorlagenversion. Führen Sie den folgenden Befehl aus, um eine Liste der Ops-Agent-Betriebssystemrichtlinien in einer Zone aufzurufen:
gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"
Verwenden Sie die Google Cloud Console oder die gcloud CLI, um die Richtlinienabdeckung auf andere VMs zu erweitern:
Console
-
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine ist.
Klicken Sie in der Liste VM-Instanzen die Kästchen neben den VMs an, die Sie mit Labels versehen möchten, und klicken Sie dann auf Labels.
Klicken Sie zum Hinzufügen von Labels auf +Label hinzufügen und fügen Sie das Schlüssel/Wert-Paar hinzu. Der Schlüssel muss
goog-ops-agent-policy
sein und der Wert ist die gewünschte Vorlagenversion, z. B.1-0-0
.Speichern Sie die Änderungen.
gcloud
Führen Sie die folgenden Befehle aus, um die Richtlinienabdeckung auf eine VM ohne Abdeckung zu erweitern:
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
Berechtigung
Die Ops-Agent-Installation verwendet VM Manager und erfordert Berechtigungen zum Aktivieren der VM Manager API und zum Erstellen einer Richtlinie. Alle erforderlichen Berechtigungen sind über die Rolle „Bearbeiter” (roles/Editor
) verfügbar. Sie können auch einen Projektadministrator bitten, die minimalen Berechtigungen über die Google Cloud CLI zu erteilen.
Erforderliche Berechtigungen zum Installieren des Ops-Agents während der VM-Erstellung:
serviceusage.services.get
serviceusage.services.enable
osconfig.osPolicyAssignments.get
osconfig.osPolicyAssignments.create
osconfig.projectBillingConfigs.update
compute.instances.create
Erforderliche Berechtigungen zum Installieren des Ops-Agents auf vorhandenen VMs:
serviceusage.services.get
serviceusage.services.enable
osconfig.osPolicyAssignments.get
osconfig.osPolicyAssignments.create
osconfig.projectBillingConfigs.update
compute.instances.setMetadata
compute.instances.setLabels
Informationen zu den entsprechenden Rollen finden Sie in der Referenz zu einfachen und vordefinierten IAM-Rollen mit Ausnahme der Berechtigung osconfig.projectBillingConfigs.update
. Diese Berechtigung ist in der Rolle osconfig.projectBillingConfig
enthalten. Diese Rolle ist in der Google Cloud Console nicht verfügbar, kann aber über die gcloud CLI zugewiesen werden.
Beispielbefehle zum Zuweisen von Rollen für Berechtigungen:
gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectBillingConfigEditor'