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 Betriebssystemrichtlinien des Ops-Agents 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 Sie, welche VMs von der Richtlinie abgedeckt sind.
- Legen Sie fest, 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 finden, die von Ops-Agent-Betriebssystemrichtlinien abgedeckt werden
Sie können in der Google Cloud Console oder mit dem Google Cloud CLI sehen, welche VMs in Ihrem Google Cloud Projekt durch Zuweisung von Betriebssystemrichtlinien für den Ops-Agenten abgedeckt sind. Wenn Sie der Meinung sind, dass eine VM nicht abgedeckt ist, können Sie das Problem so beheben:
- 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 ist
Wenn Sie prüfen möchten, ob die VMs in einer Zone von der Ops-Agent-Betriebssystemrichtlinie abgedeckt sind, verwenden Sie die Google Cloud Console oder die gcloud CLI, um zu sehen, ob die VM mit einer Zuweisung einer Ops-Agent-Betriebssystemrichtlinie verknüpft ist.
Console
-
Rufen Sie in der Google Cloud -Console die Seite Betriebssystemrichtlinien auf:
Zu „Betriebssystemrichtlinien“
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.
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 wird, enthält die Spalte OS policy id (Betriebssystemrichtlinien-ID)
goog-ops-agent-policyund der Status ist „Konform“.
gcloud
Führen Sie den folgenden Befehl aus, um eine Liste der 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 enthält eine Liste von VMs mit einer Zuweisung einer Ops-Agent-Betriebssystemrichtlinie. Wenn der Ops-Agent auf der VM installiert ist, hat die Spalte „Zusammenfassung“ den Wert „1/1 Richtlinien konform“.
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
Wenn Sie sehen möchten, welche VMs in Ihrem Google Cloud Projekt das Betriebssystemrichtlinienlabel für den Ops-Agenten goog-ops-agent-policy haben, verwenden Sie entweder die Google Cloud Console oder die gcloud CLI.
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 lautet.
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 wird, 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 Ops-Agent-Betriebssystemrichtlinien-Label goog-ops-agent-policy 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. 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 zu prüfen, ob eine bestimmte VM das Ops-Agent-Betriebssystemrichtlinien-Label hat:
gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME
Die Ausgabe enthält eine Liste der Labels für Ihre VM. Wenn Ihre VM das Ops-Agent-Betriebssystemrichtlinien-Label hat, wird goog-ops-agent-policy in der Liste labels 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
Sehen Sie sich die Zuweisungen von Betriebssystemrichtlinien für Ihr Google Cloud Projekt an, um zu prüfen, ob eine Zuweisung von Ops-Agent-Betriebssystemrichtlinien korrekt in einer bestimmten Zone bereitgestellt wurde.
Console
-
Rufen Sie in der Google Cloud -Console die Seite Betriebssystemrichtlinien auf:
Zu „Betriebssystemrichtlinien“
Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.
Klicken Sie auf den Tab Zuweisungen von Betriebssystemrichtlinien, um den Status von Rollouts von Betriebssystemrichtlinien aufzurufen.
Ops-Agent-Betriebssystemrichtlinienzuweisungen 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 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 enthält 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 einer Ops-Agent-Betriebssystemrichtlinie aufzurufen:
gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE
Ops-Agent auf VMs deinstallieren, die von der Betriebssystemrichtlinie des Ops-Agenten abgedeckt werden
Wenn Sie den Ops-Agent manuell deinstallieren auf einer VM, die von der Ops-Agent-Betriebssystemrichtlinie abgedeckt wird, wird er durch die Richtlinie neu installiert. Wenn Sie den Ops-Agent deinstallieren möchten, müssen Sie zuerst das Label goog-ops-agent-policy von der VM entfernen. Nachdem Sie das Ops-Agent-Betriebssystemrichtlinien-Label 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 lautet.
Wählen Sie den Namen der VM aus, die Sie bearbeiten möchten.
Klicken Sie auf Bearbeiten.
Rufen Sie den Bereich Labels auf und klicken Sie auf + Labels hinzufügen.
Suchen Sie das Label mit dem Schlüssel
goog-ops-agent-policyund klicken Sie auf Element löschen.
gcloud
Führen Sie den folgenden Befehl aus, um das Label
goog-ops-agent-policyvon einer VM zu entfernen:gcloud compute instances update VM_NAME \ --remove-labels=goog-ops-agent-policy
Ops-Agent auf allen VMs deinstallieren
Wenn Sie den Ops-Agent von VMs in einer Zone deinstallieren möchten, die eine Zuweisung für eine Ops-Agent-Betriebssystemrichtlinie hat, verwenden Sie das von Cloud Monitoring bereitgestellte Script. Sie können den Agent nicht über die Google Cloud Console von einer Gruppe von VMs deinstallieren.
Zum Ausführen des Skripts benötigen Sie die Rolle „GuestPolicy-Bearbeiter“ (roles/osconfig.guestPolicyEditor).
Führen Sie das folgende Skript in Cloud Shell 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:
- Hiermit werden alle Ops-Agent-Betriebssystemrichtlinien zurückgegeben.
- Bearbeitet jede Richtlinie so, dass der Ops-Agent auf den zugehörigen VMs deinstalliert wird.
- Löscht die Betriebssystemrichtlinie für den Ops-Agent.
- Entfernt das Label
goog-ops-agent-policyaus jeder abgedeckten VM.
Einer vorhandenen VM die Ops-Agent-Betriebssystemrichtlinie hinzufügen
Die Ops-Agent-Betriebssystemrichtlinie gilt nur für VMs mit dem Label goog-ops-agent-policy, die sich in derselben Zone wie eine vorhandene Zuweisung von Ops-Agent-Betriebssystemrichtlinien befinden. Sie können die Abdeckung jedoch auf andere VMs ausweiten, die ohne die zugewiesene Ops-Agent-Betriebssystemrichtlinie erstellt wurden.
Wenn Sie die Richtlinienabdeckung auf eine VM ausweiten möchten, müssen Sie die Vorlagenversion der Zuweisung der Betriebssystemrichtlinie des Ops-Agents in Ihrer Zone kennen. Wenn Ihrer Zone mehrere Zuweisungen von Ops-Agent-Betriebssystemrichtlinien zugewiesen sind, suchen Sie nach der 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"
Wenn Sie die Richtlinienabdeckung auf andere VMs ausweiten möchten, verwenden Sie entweder die Google Cloud Console oder die gcloud CLI:
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 lautet.
Wählen Sie in der Liste VM-Instanzen die Kästchen neben den VMs aus, die Sie labeln 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-policysein 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 den Richtlinienbereich auf eine VM ohne Abdeckung auszuweiten:
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 für die Installation des Ops-Agents während der VM-Erstellung:
serviceusage.services.getserviceusage.services.enableosconfig.osPolicyAssignments.getosconfig.osPolicyAssignments.createosconfig.projectFeatureSettings.updatecompute.instances.create
Erforderliche Berechtigungen für die Installation des Ops-Agents auf vorhandenen VMs:
serviceusage.services.getserviceusage.services.enableosconfig.osPolicyAssignments.getosconfig.osPolicyAssignments.createosconfig.projectFeatureSettings.updatecompute.instances.setMetadatacompute.instances.setLabels
Entsprechende Rollen, die diese Berechtigungen bieten, finden Sie in der Referenz für einfache und vordefinierte IAM-Rollen.
Beispielbefehle zum Zuweisen von Rollen für Berechtigungen:
gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectFeatureSettingsEditor'