Instala extensiones de VM creando políticas de extensiones

En este documento, se describe cómo crear políticas de extensiones de VM, que te permiten instalar y administrar automáticamente extensiones en una flota de máquinas virtuales (VMs) de Compute Engine. Si defines una política, puedes asegurarte de que las extensiones específicas se instalen y mantengan en cualquier VM que coincida con los criterios que especifiques, como las etiquetas de VM.

Antes de comenzar

Roles de IAM obligatorios

Para obtener el permiso que necesitas para crear una política de extensión, pídele a tu administrador que te otorgue el rol de IAM Administrador de políticas de extensiones de VM (roles/compute.vmExtensionPolicyAdmin). Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso compute.vmExtensionPolicies.create, que se requiere para crear una política de extensión.

También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.

Para obtener más información sobre los roles y permisos de IAM en Compute Engine, consulta Roles y permisos de Compute Engine.

Crea una política de extensión de VM

Usa uno de los siguientes métodos para crear una política de extensión de VM. Esta política define qué extensiones se instalarán y en qué VMs.

Console

  1. En la consola de Google Cloud , ve a la página Políticas de extensiones de VM.

    Ir a Políticas de extensión de VM

  2. Haz clic en Crear política de extensión.
  3. En el campo Nombre, ingresa un nombre para la política.
  4. Opcional: En el campo Descripción, ingresa una descripción para la política.
  5. En el campo Prioridad, especifica un número de prioridad para resolver conflictos entre políticas. Los números más bajos indican una mayor prioridad. El valor predeterminado es 1,000.
  6. En la lista Zona, selecciona la zona en la que deseas aplicar esta política.
  7. En la sección Extensiones, haz clic en Agregar extensión y realiza las siguientes acciones para cada extensión que quieras instalar en las VMs de destino:
    1. En la lista Extensión, selecciona una extensión. Consulta las extensiones compatibles.
    2. En la lista Versión, especifica el número de versión de la extensión. Déjalo en blanco para seleccionar la versión más reciente.
      • En el caso del Agente de operaciones, puedes especificar la versión 2.58.0 o posterior.
      • Para las cargas de trabajo de Extension for SAP y Extension for Compute, deja el campo en blanco para seleccionar la versión más reciente.
    3. Opcional: En el campo Contenido del archivo de configuración, ingresa los parámetros de configuración de la extensión.
  8. En la sección Instancias de VM de destino, selecciona las VMs para la política. Para seleccionar VMs con etiquetas específicas, haz clic en Agregar etiquetas y agrega el par clave-valor.
  9. Haz clic en Crear.

gcloud

Para crear una política de extensiones de VM y, luego, implementarla en las VMs de una zona específica, usa el comando gcloud beta compute zone-vm-extension-policies create:

gcloud beta compute zone-vm-extension-policies create POLICY_NAME \
    --zone=ZONE \
    --description="DESCRIPTION" \
    --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
    --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \
    --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \
    --inclusion-labels=KEY_1=VALUE_1 \
    --priority=PRIORITY

Reemplaza lo siguiente:

  • POLICY_NAME: Es el nombre de la política de extensión de VM.
  • ZONE: Es la zona en la que se aplica esta política.
  • DESCRIPTION: Es una descripción opcional de la política.
  • EXTENSION_NAME_1,EXTENSION_NAME_2: Es una lista separada por comas de las extensiones que se agregarán a la política. Debes especificar al menos una extensión. Los valores válidos para las extensiones son los siguientes:
    • ops-agent
    • google-cloud-sap-extension
    • google-cloud-workload-extension
  • EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: Es una lista separada por comas de pares clave-valor en la que la clave es el nombre de la extensión y el valor es la versión de la extensión. Si no especificas una versión para una extensión, VM Extension Manager usa la última versión disponible y la actualiza automáticamente cuando hay versiones nuevas disponibles.

  • EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: Es una lista separada por comas de pares clave-valor en la que la clave es el nombre de la extensión y el valor es la ruta de acceso al archivo de configuración de esa extensión. Esta ruta de acceso se encuentra en la VM en la que ejecutas el comando gcloud, no en la VM en la que instalas la extensión.

    Como alternativa, para proporcionar la configuración como una cadena intercalada, usa la marca --config en lugar de --config-from-file, por ejemplo, EXTENSION_NAME_1="CONFIG_1". Puedes usar --config-from-file o --config, pero no ambos en el mismo comando.

  • KEY_1=VALUE_1: Es una lista separada por comas de pares clave-valor que definen etiquetas de inclusión para un selector. Las VMs deben tener todas las etiquetas especificadas en un selector para que se les aplique la segmentación. Si especificas --inclusion-labels varias veces, la política se aplica a las VMs que coinciden con cualquiera de los selectores proporcionados (OR lógica). Si omites esta marca, la política se aplicará a todas las VMs de la zona especificada.

  • PRIORITY: Es un número entero del 0 al 65535 que define la prioridad de la política. Los números más bajos indican una mayor prioridad. El valor predeterminado es 1,000.

    El comando falla si ya existe una política con el nombre especificado en la zona.

Ejemplo 1

El siguiente comando crea una política llamada test-extension-policy que instala la extensión ops-agent en la zona us-central1-f para el proyecto test-project. La marca --config-from-file especifica la ruta de acceso a un archivo local que contiene una configuración YAML para el agente de operaciones.

gcloud beta compute zone-vm-extension-policies create test-extension-policy  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml"

Ejemplo 2

El siguiente comando crea una política llamada test-extension-policy-2 que instala la extensión ops-agent en la zona us-central1-f para el proyecto test-project en las VMs con la etiqueta env=prod. La prioridad de la política se establece en 500, y la marca --config-from-file especifica la ruta de acceso a un archivo local que contiene una configuración en formato YAML para el agente de operaciones.

 gcloud beta compute zone-vm-extension-policies create test-extension-policy-2  \
    --project=test-project \
    --zone=us-central1-f \
    --extensions=ops-agent \
    --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
    --priority=500 \
    --inclusion-labels=env=prod

¿Qué sigue?