Gestire le VM coperte dal criterio del sistema operativo dell'agente operativo

Se hai creato VM Compute Engine con Ops Agent installato durante la creazione o, in alcuni casi, se hai installato l'agente su VM esistenti utilizzando la console Google Cloud , Google Cloud hai anche creato policy del sistema operativo di VM Manager che installano e monitorano Ops Agent. Questo documento descrive come eseguire query su queste policy del sistema operativo di Ops Agent e gestire Ops Agent sulle VM coperte dalle policy. Per informazioni sulla creazione di VM con Ops Agent installato automaticamente, vedi Installare Ops Agent durante la creazione della VM.

Dopo aver creato una policy del sistema operativo dell'agente Ops, puoi:

  • Determina quali VM sono coperte dalla policy.
  • Determina quali zone sono coperte dalle norme.
  • Estendi la copertura delle policy alle VM esistenti.
  • Disinstalla l'agente da una VM coperta dalla policy.

Trovare le VM coperte dalle policy del sistema operativo di Ops Agent

Puoi utilizzare la console Google Cloud o Google Cloud CLI per vedere quali VM nel tuo progetto Google Cloud sono coperte dalle policy del sistema operativo dell'agente Ops tramite un'assegnazione delle policy del sistema operativo. Se ritieni che una VM non sia coperta, puoi risolvere il problema nel seguente modo:

Verifica che una policy del sistema operativo Ops Agent sia assegnata alle VM in una zona

Per verificare che le VM in una zona siano coperte dalla policy del sistema operativo di Ops Agent, utilizza la console Google Cloud o gcloud CLI per vedere se la VM è correlata a un'assegnazione della policy del sistema operativo di Ops Agent.

Console

  1. Nella console Google Cloud , vai alla pagina Policy del sistema operativo:

    Vai a Policy del sistema operativo

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  2. Nella scheda Istanze VM, seleziona la VM da controllare.

  3. Se la VM è coperta da un criterio di sistema operativo Ops Agent, la colonna ID criterio di sistema operativo include goog-ops-agent-policy e lo stato è "Conforme".

gcloud

Per visualizzare un elenco di assegnazioni delle policy del sistema operativo di Ops Agent in una zona, esegui questo comando:

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

L'output mostra un elenco di VM con un'assegnazione di policy del sistema operativo Ops Agent. Se Ops Agent è installato sulla VM, la colonna Riepilogo ha il valore "1/1 criteri conformi".

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

Verifica che una VM abbia un'etichetta di policy del sistema operativo Ops Agent

Per vedere quali VM nel tuo progetto Google Cloud hanno l'etichetta della policy del sistema operativo Ops Agent, goog-ops-agent-policy, utilizza la console Google Cloud o gcloud CLI.

Console

  1. Nella Google Cloud console, vai alla pagina Istanze VM.

    Vai a Istanze VM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  2. Seleziona il nome della VM.

  3. Nel riquadro Informazioni di base, individua la voce Etichette.

    Se la VM è coperta dalla policy del sistema operativo di Ops Agent, ha un'etichetta come goog-ops-agent-policy:v2-x86-template-1-0-0.

gcloud

Per visualizzare tutte le VM con l'etichetta della policy del sistema operativo di Ops Agent goog-ops-agent-policy, esegui questo comando:

gcloud compute instances list --format="table(name,zone,labels)" --filter="labels=goog-ops-agent-policy"

L'output mostra il nome, la zona e le etichette delle VM. Ad esempio:

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'}

Per verificare se una VM specifica ha l'etichetta della policy del sistema operativo Ops Agent, esegui questo comando:

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

L'output mostra un elenco di etichette per la tua VM. Se la tua VM ha l'etichetta della policy del sistema operativo Ops Agent, goog-ops-agent-policy viene visualizzato nell'elenco labels. Ad esempio:

labels:
  goog-ops-agent-policy: v2-x86-template-1-0-0

Verifica che l'assegnazione delle policy del sistema operativo dell'agente Ops sia stata implementata correttamente

Visualizza le assegnazioni delle policy del sistema operativo del tuo progetto Google Cloud per verificare che un'assegnazione delle policy del sistema operativo di Ops Agent sia stata eseguita correttamente in una zona specifica.

Console

  1. Nella console Google Cloud , vai alla pagina Policy del sistema operativo:

    Vai a Policy del sistema operativo

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  2. Per visualizzare lo stato delle implementazioni delle policy del sistema operativo, fai clic sulla scheda Assegnazioni delle policy del sistema operativo.

    Le assegnazioni delle policy del sistema operativo di Ops Agent hanno ID che iniziano con la stringa "goog-ops-agent". Se l'assegnazione è stata implementata correttamente, lo stato di implementazione è "Riuscito".

gcloud

Per visualizzare tutte le assegnazioni delle policy del sistema operativo di Ops Agent in una zona, esegui questo comando:

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

L'output mostra un elenco di assegnazioni delle policy del sistema operativo di Ops Agent in una zona. Se l'assegnazione è stata implementata correttamente, lo stato di implementazione è "SUCCEEDED". Ad esempio:

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

Per visualizzare i dettagli di un'assegnazione delle policy del sistema operativo di Ops Agent specifica, esegui questo comando:

gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE

Disinstalla l'Ops Agent sulle VM coperte dal criterio del sistema operativo dell'agente operativo

Se disinstalli manualmente Ops Agent su una VM coperta dalla policy del sistema operativo di Ops Agent, la policy lo reinstalla. Per disinstallare Ops Agent, devi prima rimuovere l'etichetta goog-ops-agent-policy dalla VM. Dopo aver rimosso l'etichetta della policy del sistema operativo di Ops Agent da una VM, puoi disinstallare Ops Agent in modo permanente.

Disinstallare l'Ops Agent su una VM specifica

Per rimuovere la policy e disinstallare l'Ops Agent da una VM specifica, puoi utilizzare la console Google Cloud o gcloud CLI.

Console

  1. Nella Google Cloud console, vai alla pagina Istanze VM.

    Vai a Istanze VM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  2. Seleziona il nome della VM da modificare.

  3. Fai clic su Modifica.

  4. Vai alla sezione Etichette e fai clic su + Aggiungi etichette.

  5. Individua l'etichetta con la chiave goog-ops-agent-policy e fai clic su Elimina elemento.

  6. Disinstalla l'agente.

gcloud

  1. Per rimuovere l'etichetta goog-ops-agent-policy da una VM, esegui questo comando:

    gcloud compute instances update VM_NAME \
      --remove-labels=goog-ops-agent-policy
    
  2. Disinstalla l'agente.

Disinstalla l'Ops Agent su tutte le VM

Per disinstallare Ops Agent dalle VM nella zona con un'assegnazione delle policy del sistema operativo Ops Agent, utilizza lo script fornito da Cloud Monitoring. Non puoi disinstallare l'agente da un gruppo di VM utilizzando la console Google Cloud .

Per eseguire lo script, devi disporre del ruolo Editor GuestPolicy (roles/osconfig.guestPolicyEditor).

Esegui questo script in Cloud Shell. Puoi fornire un numero qualsiasi di zone:

curl -sSO https://dl.google.com/cloudagents/undo-ops-agent-policies.sh
bash undo-ops-agent-policies.sh ZONE1 ZONE2

Lo script esegue le seguenti attività in ogni zona:

  1. Trova tutte le policy del sistema operativo di Ops Agent.
  2. Modifica ogni policy in modo che disinstalli l'Ops Agent sulle VM coperte.
  3. Elimina la policy del sistema operativo dell'agente operativo.
  4. Rimuove l'etichetta goog-ops-agent-policy da ogni VM coperta.

Aggiungi la copertura delle policy del sistema operativo dell'agente operativo a una VM esistente

La policy del sistema operativo dell'agente operativo copre solo le VM che hanno l'etichetta goog-ops-agent-policy e si trovano nella stessa zona di un'assegnazione della policy del sistema operativo dell'agente operativo esistente. Tuttavia, puoi estendere la copertura ad altre VM che sono state create senza che sia stata assegnata la policy del sistema operativo di Ops Agent.

Per estendere la copertura delle policy a una VM, devi conoscere la versione del modello dell'assegnazione delle policy del sistema operativo dell'agente Ops nella tua zona. Se la tua zona ha più assegnazioni delle policy del sistema operativo dell'agente Ops, trova l'assegnazione con la versione più recente del modello. Per visualizzare un elenco di assegnazioni delle policy del sistema operativo di Ops Agent in una zona, esegui questo comando:

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

Per estendere la copertura delle policy ad altre VM, utilizza la console Google Cloud o gcloud CLI:

Console

  1. Nella Google Cloud console, vai alla pagina Istanze VM.

    Vai a Istanze VM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  2. Nell'elenco Istanze VM, seleziona le caselle di controllo accanto alle VM che vuoi etichettare e poi fai clic su Etichette.

  3. Per aggiungere etichette, fai clic su +Aggiungi etichetta e aggiungi la coppia chiave-valore. La chiave deve essere goog-ops-agent-policy e il valore è la versione del modello desiderata, ad esempio 1-0-0.

  4. Salva le modifiche.

gcloud

Per estendere la copertura delle policy a una VM senza copertura, esegui questi comandi:

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

Autorizzazione

L'installazione di Ops Agent utilizza VM Manager e richiede le autorizzazioni per attivare l'API VM Manager e creare un criterio. Tutte le autorizzazioni richieste sono disponibili utilizzando il ruolo Editor (roles/Editor). In alternativa, puoi chiedere a un amministratore del progetto di concedere le autorizzazioni minime utilizzando Google Cloud CLI.

Autorizzazioni richieste per installare l'Ops Agent durante la creazione della VM:

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

Autorizzazioni richieste per installare lOps Agent sulle VM esistenti:

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

Puoi trovare i ruoli corrispondenti che forniscono queste autorizzazioni nei riferimenti ai ruoli di base e predefiniti di IAM.

Comandi di esempio per concedere ruoli per le autorizzazioni:

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