VMs verwalten, die von der Betriebssystemrichtlinie des Ops-Agenten abgedeckt werden

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 derConsole Google Cloud 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:

  • Bestimmen, welche VMs von der Richtlinie abgedeckt werden.
  • Bestimmen, 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 die Google Cloud Console oder das Google Cloud CLI verwenden, um zu sehen, welche VMs in Ihrem Google Cloud Projekt durch eine Zuweisung von Betriebssystemrichtlinien von Ops-Agent-Betriebssystemrichtlinien abgedeckt werden. Wenn Sie der Meinung sind, dass eine VM nicht abgedeckt ist, können Sie das Problem so beheben:

Prüfen, ob einer VM in einer Zone eine Ops-Agent-Betriebssystemrichtlinie zugewiesen ist

Verwenden Sie die Google Cloud Console oder die gcloud CLI, um zu prüfen, ob die VMs in einer Zone von der Ops-Agent-Betriebssystemrichtlinie abgedeckt werden, und um zu sehen, ob die VM mit einer Zuweisung von Ops-Agent-Betriebssystemrichtlinien verknüpft ist.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Betriebssystemrichtlinien:

    Zu Betriebssystemrichtlinien

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  2. Wählen Sie auf dem Tab VM-Instanzen die VM aus, die Sie prüfen möchten.

  3. Wenn die VM von einer Ops-Agent-Betriebssystemrichtlinie abgedeckt wird, enthält die Spalte Betriebssystemrichtlinien-ID goog-ops-agent-policy und 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 von Ops-Agent-Betriebssystemrichtlinien. 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

Verwenden Sie die Google Cloud Console oder die gcloud CLI, um zu sehen, welche VMs in Ihrem Google Cloud Projekt das Ops-Agent-Betriebssystemrichtlinien-Label goog-ops-agent-policyhaben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu Seite VM-Instanzen

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  2. Wählen Sie den Namen Ihrer VM aus.

  3. Suchen Sie im Bereich Grundlegende Informationen den Eintrag Labels.

    Wenn die VM von der Ops-Agent-Betriebssystemrichtlinie 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 enthält 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 sehen, 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

  1. Öffnen Sie in der Google Cloud Console die Seite Betriebssystemrichtlinien:

    Zu Betriebssystemrichtlinien

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  2. 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 von 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 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 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

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu Seite VM-Instanzen

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  2. Wählen Sie den Namen der VM aus, die Sie bearbeiten möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Rufen Sie den Bereich Labels auf und klicken Sie dann auf + Labels hinzufügen.

  5. Suchen Sie das Label mit dem Schlüssel goog-ops-agent-policy und klicken Sie auf Element löschen.

  6. Agent deinstallieren.

gcloud

  1. 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
    
  2. Agent deinstallieren.

Ops-Agent auf allen VMs deinstallieren

Wenn Sie den Ops-Agent von VMs in einer Zone deinstallieren möchten, für die eine Zuweisung von Ops-Agent-Betriebssystemrichtlinien vorhanden ist, verwenden Sie das von Cloud Monitoring bereitgestellte Skript. 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:

  1. Alle Ops-Agent-Betriebssystemrichtlinien suchen.
  2. Jede Richtlinie so bearbeiten, dass der Ops-Agent auf den zugehörigen VMs deinstalliert wird.
  3. Die Ops-Agent-Betriebssystemrichtlinie löschen.
  4. Das Label goog-ops-agent-policy von jeder abgedeckten VM entfernen.

Ops-Agent-Betriebssystemrichtlinienabdeckung auf eine vorhandene VM ausweiten

Die Ops-Agent-Betriebssystemrichtlinie deckt nur VMs ab, die das Label goog-ops-agent-policy haben und 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 zugewiesene Ops-Agent-Betriebssystemrichtlinie erstellt wurden.

Wenn Sie die Richtlinienabdeckung auf eine VM ausweiten möchten, müssen Sie die Vorlagenversion der Zuweisung von Ops-Agent-Betriebssystemrichtlinien in Ihrer Zone kennen. 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 auszuweiten:

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu Seite VM-Instanzen

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  2. 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.

  3. 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.

  4. Speichern Sie die Änderungen.

gcloud

Führen Sie die folgenden Befehle aus, um die Richtlinienabdeckung 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.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectFeatureSettings.update
  • compute.instances.create

Erforderliche Berechtigungen für die Installation des Ops-Agents auf vorhandenen VMs:

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

Entsprechende Rollen, die diese Berechtigungen gewähren, finden Sie in der Referenz zu grundlegenden und vordefinierten IAM-Rollen.

Beispielbefehle zum Gewähren von Rollen für Berechtigungen:

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