VMs verwalten, die von der Betriebssystemrichtlinie des Ops-Agents 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 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 Betriebssystemrichtlinie für den Ops-Agent erstellt wurde, können Sie Folgendes tun:

  • Ermitteln Sie, für welche VMs die Richtlinie gilt.
  • Ermitteln Sie, 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 Betriebssystemrichtlinien des Ops-Agents abgedeckt werden

Mit der Google Cloud Console oder der Google Cloud CLI können Sie sehen, welche VMs in Ihrem Google Cloud-Projekt durch eine Zuweisung von Betriebssystemrichtlinien von den Betriebssystemrichtlinien des Ops-Agents abgedeckt werden. Wenn Sie der Meinung sind, dass eine VM keine Abdeckung hat, können Sie das Problem so beheben:

Prüfen, ob VMs in einer Zone eine Betriebssystemrichtlinie für den Ops-Agent zugewiesen ist

Wenn Sie prüfen möchten, ob die VMs in einer Zone von der Betriebssystemrichtlinie des Ops-Agents abgedeckt sind, verwenden Sie entweder die Google Cloud Console oder die gcloud CLI. Damit können Sie feststellen, ob die VM mit einer Zuweisung der Betriebssystemrichtlinie des Ops-Agents zusammenhängt.

Console

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Compute Engine und dann Betriebssystemrichtlinien aus:

    Zu den Betriebssystemrichtlinien

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

  3. Wenn die VM von einer Betriebssystemrichtlinie des Ops-Agents abgedeckt ist, enthält die Spalte OS policy id (ID der Betriebssystemrichtlinie) goog-ops-agent-policy und der Status ist „Konform“.

gcloud

Führen Sie den folgenden Befehl aus, um eine Liste der Betriebssystemrichtlinienzuweisungen des Ops-Agents 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 Betriebssystemrichtlinie des Ops-Agents. Wenn der Ops-Agent auf der VM installiert ist, enthält die Spalte „Zusammenfassung“ den Wert „1/1 richtlinienkonform“.

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 Betriebssystemrichtlinienlabel goog-ops-agent-policy des Ops-Agents haben.

Console

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Compute Engine und dann VM-Instanzen aus:

    Zu Seite VM-Instanzen

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

  3. Suchen Sie im Bereich Allgemeine Informationen den 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 Betriebssystemrichtlinienlabel goog-ops-agent-policy des Ops-Agents 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 festzustellen, ob eine bestimmte VM das Betriebssystemrichtlinienlabel des Ops-Agents hat:

gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME

Die Ausgabe zeigt eine Liste von Labels für die VM. Wenn Ihre VM das Betriebssystemrichtlinienlabel des Ops-Agents 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 Betriebssystemrichtlinienzuweisungen Ihres Google Cloud-Projekts an, um zu prüfen, ob die Zuweisung einer Betriebssystemrichtlinie des Ops-Agents korrekt in einer bestimmten Zone bereitgestellt wurde.

Console

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Compute Engine und dann Betriebssystemrichtlinien aus:

    Zu den Betriebssystemrichtlinien

  2. Klicken Sie auf den Tab Zuweisungen für Betriebssystemrichtlinien, um den Status der Roll-outs von Betriebssystemrichtlinien zu sehen.

    Betriebssystemrichtlinienzuweisungen des Ops-Agents haben IDs, die mit dem String „goog-ops-agent“ beginnen. Wenn die Zuweisung erfolgreich eingeführt wurde, hat sie den Roll-out-Status „Erfolgreich“.

gcloud

Führen Sie den folgenden Befehl aus, um alle Zuweisungen von Betriebssystemrichtlinien für den Ops-Agent in einer Zone anzusehen:

gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

Die Ausgabe zeigt eine Liste der Zuweisungen von Betriebssystemrichtlinien für den Ops-Agent 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 Betriebssystemrichtlinie des Ops-Agents 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-Agents abgedeckt sind

Wenn Sie den Ops-Agent manuell auf einer VM deinstallieren, die von der Betriebssystemrichtlinie des Ops-Agents abgedeckt ist, wird er durch die Richtlinie neu installiert. Zum Deinstallieren des Ops-Agents müssen Sie zuerst das Label goog-ops-agent-policy von der VM entfernen. Nachdem Sie das Betriebssystemrichtlinienlabel des Ops-Agents 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. Wählen Sie im Navigationsbereich der Google Cloud Console Compute Engine und dann VM-Instanzen aus:

    Zu Seite VM-Instanzen

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

  3. Klicken Sie auf Bearbeiten.

  4. Klicken Sie im Abschnitt Labels 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. Deinstallieren Sie den Agent.

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. Deinstallieren Sie den Agent.

Ops-Agent auf allen VMs deinstallieren

Verwenden Sie das von Cloud Monitoring bereitgestellte Skript, um den Ops-Agent auf VMs in einer Zone zu deinstallieren, die eine Betriebssystemrichtlinie des Ops-Agents hat. Sie können den Agent nicht über die Google Cloud Console aus 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. Findet alle Betriebssystemrichtlinien des Ops-Agents.
  2. Jede Richtlinie so bearbeiten, dass der Ops-Agent auf den abgedeckten VMs deinstalliert wird
  3. Löscht die Betriebssystemrichtlinie des Ops-Agents.
  4. Entfernt das Label goog-ops-agent-policy von jeder abgedeckten VM.

Abdeckung der Betriebssystemrichtlinie des Ops-Agents zu einer vorhandenen VM hinzufügen

Die Betriebssystemrichtlinie des Ops-Agents deckt nur VMs mit dem Label goog-ops-agent-policy ab, die sich in derselben Zone wie eine vorhandene Zuweisung einer Ops-Agent-Betriebssystemrichtlinie befinden. Sie können die Abdeckung jedoch auf andere VMs ausweiten, die ohne die ihnen zugewiesene Betriebssystemrichtlinie des Ops-Agents erstellt wurden.

Wenn Sie die Richtlinienabdeckung auf eine VM ausweiten möchten, müssen Sie die Vorlagenversion der Betriebssystemrichtlinie des Ops-Agents 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"

Wenn Sie die Richtlinienabdeckung auf andere VMs ausweiten möchten, verwenden Sie entweder die Google Cloud Console oder die gcloud CLI:

Console

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Compute Engine und dann VM-Instanzen aus:

    Zu Seite VM-Instanzen

  2. Klicken Sie in der Liste VM-Instanzen auf die Kästchen neben den VMs, die Sie mit einem Label versehen möchten, und 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 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

Entsprechende Rollen mit diesen Berechtigungen finden Sie mit Ausnahme der Berechtigung osconfig.projectBillingConfigs.update in der Referenz zu einfachen und vordefinierten IAM-Rollen. 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 Gewähren von Rollen für Berechtigungen:

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