Administrar las VMs que cubre la política del SO del agente de operaciones

Si creaste VMs de Compute Engine con el agente de operaciones instalado durante la creación o, en algunos casos, si instalaste el agente en las VM existentes mediante la consola de Google Cloud, entonces Google Cloud también creó políticas del SO de VM Manager que instalan y supervisan el agente de operaciones. En este documento, se describe cómo consultar esas políticas del SO del agente de operaciones y administrar el agente de operaciones en las VMs cubiertas por las políticas. Para obtener información sobre cómo crear VM con el Agente de operaciones instalado de forma automática, consulta Instala el Agente de operaciones durante la creación de la VM.

Después de crear una política de SO del agente de operaciones, puedes hacer lo siguiente:

  • Determina qué VMs cubre la política.
  • Determina qué zonas están cubiertas por la política.
  • Extiende la cobertura de políticas a las VMs existentes.
  • Desinstala el agente de una VM cubierta por la política.

Busca las VMs que cubren las políticas del SO del agente de operaciones

Puedes usar la consola de Google Cloud o Google Cloud CLI para ver qué VMs de tu proyecto de Google Cloud están cubiertas por las políticas del SO del agente de operaciones a través de una asignación de política del SO. Si crees que a una VM le falta cobertura, puedes solucionar el problema si haces lo siguiente:

Verifica que la política del SO del agente de operaciones esté asignada a las VMs de una zona

Para verificar que las VMs de una zona estén cubiertas por la política del SO del agente de operaciones, usa la consola de Google Cloud o gcloud CLI para ver si la VM está relacionada con una asignación de política del SO del agente de operaciones.

Consola

  1. En el panel de navegación de la consola de Google Cloud, selecciona Compute Engine y, luego, elige Políticas del SO:

    Ir a Políticas del SO

  2. En la pestaña Instancias de VM, selecciona la VM que quieres verificar.

  3. Si la VM está cubierta por una política del SO del agente de operaciones, la columna ID de la política del SO incluye goog-ops-agent-policy y el estado es “Cumple”.

gcloud

Para mostrar una lista de las asignaciones de políticas del SO del agente de operaciones en una zona, ejecuta el siguiente comando:

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

El resultado muestra una lista de VMs con una asignación de política de SO del agente de operaciones. Si el Agente de operaciones está instalado en la VM, la columna de resumen tiene el valor de “cumple con las políticas 1/1”.

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 que una VM tenga una etiqueta de política de SO del agente de operaciones

Para ver qué VMs de tu proyecto de Google Cloud tienen la etiqueta de política del SO del agente de operaciones, goog-ops-agent-policy, usa la consola de Google Cloud o gcloud CLI.

Consola

  1. En el panel de navegación de la consola de Google Cloud, elige Compute Engine y, luego, Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona el nombre de tu VM.

  3. En el panel Información básica, busca la entrada Etiquetas.

    Si la VM está cubierta por la política del SO del Agente de operaciones, entonces tiene una etiqueta como goog-ops-agent-policy:v2-x86-template-1-0-0.

gcloud

Para ver todas las VMs que tienen la etiqueta de política goog-ops-agent-policy del SO de agentes de operaciones, ejecuta el siguiente comando:

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

El resultado muestra el nombre, la zona y las etiquetas de las VMs. Por ejemplo:

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

Para ver si una VM específica tiene la etiqueta de política del SO del agente de operaciones, ejecuta el siguiente comando:

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

El resultado muestra una lista de etiquetas para tu VM. Si tu VM tiene la etiqueta de política de SO del Agente de operaciones, goog-ops-agent-policy aparece en la lista labels. Por ejemplo:

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

Verifica que se haya lanzado de forma correcta una asignación de política de SO del agente de operaciones

Consulta las asignaciones de políticas del SO del proyecto de Google Cloud para verificar que una asignación de política del SO del agente de operaciones se implementó de forma correcta en una zona específica.

Consola

  1. En el panel de navegación de la consola de Google Cloud, selecciona Compute Engine y, luego, elige Políticas del SO:

    Ir a Políticas del SO

  2. Para ver el estado de los lanzamientos de políticas de SO, haz clic en la pestaña Asignaciones de políticas del SO.

    Las asignaciones de políticas del SO del agente de operaciones tienen IDs que comienzan con la string “goog-ops-agent”. Si la asignación se lanzó de forma correcta, tendrá el estado de lanzamiento "Succeeded".

gcloud

Para ver todas las asignaciones de políticas del SO del agente de operaciones en una zona, ejecuta el siguiente comando:

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

En el resultado, se muestra una lista de asignaciones de políticas de SO del agente de operaciones en una zona. Si la asignación se lanzó de forma correcta, tiene el estado de lanzamiento "SUCCEEDED". Por ejemplo:

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

Para ver los detalles de una asignación específica de una política del SO del agente de operaciones, ejecuta el siguiente comando:

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

Desinstala el agente de operaciones en las VMs cubiertas por la política del SO del agente de operaciones

Si desinstalas el Agente de operaciones de forma manual en una VM cubierta por la política de SO del Agente de operaciones, la política vuelve a instalarlo. Para desinstalar el Agente de operaciones, primero debes quitar la etiqueta goog-ops-agent-policy de la VM. Después de quitar la etiqueta de política del SO del agente de operaciones de una VM, puedes desinstalar el Agente de operaciones de forma permanente.

Desinstala el Agente de operaciones en una VM específica

Para quitar la política y desinstalar el agente de operaciones de una VM específica, puedes usar la consola de Google Cloud o gcloud CLI.

Consola

  1. En el panel de navegación de la consola de Google Cloud, elige Compute Engine y, luego, Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona el nombre de la VM que deseas editar.

  3. Haz clic en Editar.

  4. Ve a la sección Etiquetas y, luego, haz clic en + Agregar etiquetas.

  5. Ubica la etiqueta con la clave goog-ops-agent-policy y haz clic en Borrar elemento.

  6. Desinstala el agente.

gcloud

  1. Para quitar la etiqueta goog-ops-agent-policy de una VM, ejecuta el siguiente comando:

    gcloud compute instances update VM_NAME \
      --remove-labels=goog-ops-agent-policy
    
  2. Desinstala el agente.

Desinstala el agente de operaciones en todas las VMs

Para desinstalar el agente de operaciones de VMs en la zona que tiene una asignación de política del SO del agente de operaciones, usa la secuencia de comandos que proporciona Cloud Monitoring. No puedes desinstalar el agente de un grupo de VMs mediante la consola de Google Cloud.

Para ejecutar la secuencia de comandos, debes tener el rol de editor de GuestPolicy (roles/osconfig.guestPolicyEditor).

Ejecuta la siguiente secuencia de comandos en Cloud Shell. Puedes proporcionar cualquier cantidad de zonas:

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

La secuencia de comandos realiza las siguientes tareas en cada zona:

  1. Busca todas las políticas de SO del Agente de operaciones.
  2. Edita cada política para que desinstale el agente de operaciones en las VMs cubiertas.
  3. Borra la política de SO del agente de operaciones.
  4. Quita la etiqueta goog-ops-agent-policy de cada VM cubierta.

Agrega la cobertura de la política de SO del Agente de operaciones a una VM existente

La política del SO del agente de operaciones solo abarca las VMs que tienen la etiqueta goog-ops-agent-policy y están en la misma zona que una asignación de política del SO del agente de operaciones existente. Sin embargo, puedes extender la cobertura a otras VMs creadas sin la política del SO del agente de operaciones asignada.

Para extender la cobertura de la política a una VM, debes conocer la versión de la plantilla de la asignación de políticas del SO del Agente de operaciones en tu zona. Si tu zona tiene varias asignaciones de políticas del SO del agente de operaciones, busca la asignación con la versión de la plantilla más reciente. Para mostrar una lista de las asignaciones de políticas del SO del agente de operaciones en una zona, ejecuta el siguiente comando:

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

Para extender la cobertura de políticas a otras VMs, usa la consola de Google Cloud o gcloud CLI:

Consola

  1. En el panel de navegación de la consola de Google Cloud, elige Compute Engine y, luego, Instancias de VM.

    Ir a Instancias de VM

  2. En la lista Instancias de VM, selecciona las casillas de verificación junto a las VMs que deseas etiquetar y, luego, haz clic en Etiquetas.

  3. Para agregar etiquetas, haz clic en Agregar etiqueta y agrega el par clave-valor. La clave debe ser goog-ops-agent-policy y el valor es la versión deseada de la plantilla, como 1-0-0.

  4. Guarda los cambios.

gcloud

Para extender la cobertura de políticas a una VM sin cobertura, ejecuta los siguientes comandos:

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

Permiso

La instalación del Agente de operaciones usa VM Manager y requiere permisos para activar la API de VM Manager y crear una política. Todos los permisos necesarios están disponibles con el rol Editor (roles/Editor). También puedes pedirle a un administrador del proyecto que otorgue los permisos mínimos mediante Google Cloud CLI.

Permisos necesarios para instalar el agente de operaciones durante la creación de la VM:

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

Permisos necesarios para instalar el Agente de operaciones en VMs existentes:

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

Puedes encontrar los roles correspondientes que proporcionan esos permisos en la referencia de roles básicos y predefinidos de IAM, excepto el permiso osconfig.projectBillingConfigs.update. Este permiso se incluye en el rol osconfig.projectBillingConfig. Este rol no está disponible en la consola de Google Cloud, pero se puede otorgar a través de gcloud CLI.

Comandos de muestra para otorgar roles para los permisos:

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