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
- Instala el componente beta ejecutando el siguiente comando:
gcloud components install beta
- Revisa los conceptos básicos sobre VM Extension Manager.
- Revisa las cuotas del Administrador de extensiones de VM.
- Habilita la API de Compute Engine en tu proyecto Google Cloud si aún no está habilitada.
- Asegúrate de que tu VM ejecute la versión
20241209.01o posterior del agente invitado. - Para ver los registros de depuración de los eventos de VM Extension Manager, configura los parámetros de configuración de registro del agente invitado.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
- Set a default region and zone.
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.
Prioridad de la política y resolución de conflictos
Cuando se aplican varias políticas a la misma VM, VM Extension Manager usa la prioridad de la política para resolver conflictos.
Cuando dos políticas entran en conflicto para la misma extensión, prevalece la política con mayor prioridad. Los valores de prioridad varían de 0 a 65535, donde un número más bajo significa una prioridad más alta. La prioridad predeterminada es 1,000. Si varias políticas tienen la misma prioridad, VM Extension Manager aplica a las VMs la política que se actualizó más recientemente. Borrar una política no quita la extensión si aún se aplica a la VM una política de menor prioridad.
Crea una política de extensión de VM global
Puedes crear una política de extensión de VM global para instalar extensiones en VMs de varias zonas de tu proyecto según un plan de lanzamiento. Una política de extensión de VM global no se aplica directamente a las VMs. En cambio, a medida que se implementa la política, VM Extension Manager crea políticas en cada zona según el plan de implementación. Luego, estas políticas administran la instalación de extensiones en las VMs dentro de sus respectivas zonas.
Puedes usar gcloud o el método
globalVmExtensionPolicies.insertpara crear políticas de extensiones globales.Acerca de los planes de lanzamiento
Las políticas de extensión de VM globales usan planes de lanzamiento para administrar la implementación de extensiones en diferentes ubicaciones. Puedes usar uno de los planes de lanzamiento predefinidos o crear uno personalizado.
Planes de lanzamiento predefinidos
slow_rollout: La política se lanza en un plazo de cinco días. El lanzamiento lento es el plan de lanzamiento predeterminado.fast_rollout: Implementa la política de inmediato en todas las zonas.
Planes de lanzamiento personalizados
Puedes crear planes de lanzamiento personalizados con el método
rolloutPlans.insert. Por ejemplo, el siguiente JSON define un plan de lanzamiento llamadotest-rollout-planque segmenta dos zonas:{ "name": "test-rollout-plan", "waves": [ { "selectors": [ { "locationSelector": { "includedLocations": [ "us-central1-a", "us-west1-a" ] } } ], "validation": { "type": "time", "timeBasedValidationMetadata": { "waitDuration": "0s" } }, "orchestrationOptions": { "maxConcurrentResourcesPerLocation": "10", "maxConcurrentLocations": "10" } } ] }
Luego, puedes usar este plan de lanzamiento personalizado cuando crees una política global, como se muestra en el ejemplo 2.
Crea una política global
Usa el comando
gcloud beta compute global-vm-extension-policies createpara crear una política global de extensiones de VM:gcloud beta compute global-vm-extension-policies create POLICY_NAME
--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
--rollout-predefined-plan=ROLLOUT_PLAN
--rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIORReemplaza lo siguiente:
POLICY_NAME: Es el nombre de la política de extensión de VM.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-agentgoogle-cloud-sap-extensiongoogle-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 versión más reciente 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. Este archivo se encuentra en la VM en la que ejecutas el comandogcloud, 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
--configen lugar de--config-from-file, por ejemplo,EXTENSION_NAME_1="CONFIG_1". Puedes usar--config-from-fileo--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-labelsvarias 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 tu proyecto en todas las zonas.PRIORITY: Es un número entero que define la prioridad de la política. Los números más grandes indican una mayor prioridad. El valor predeterminado es 0. Si varias políticas tienen la misma prioridad, se aplica a las VMs la política que se actualizó más recientemente.ROLLOUT_PLAN: especificaslow_rolloutofast_rollout. Si necesitas usar un plan de lanzamiento personalizado, usa la marca--rollout-custom-planen lugar de--rollout-predefined-plany especifica el nombre del plan, por ejemplo:--rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAMEReemplaza lo siguiente:
PROJECT_NUMBER: Es el proyecto en el que se define el plan de lanzamiento.ROLLOUT_PLAN_NAME: Es el nombre del plan de lanzamiento personalizado que definiste. Si no se especifica ninguna marca de plan de lanzamiento, se usaslow_rollout.
ROLLOUT_CONFLICT_BEHAVIOR: Especifica el comportamiento cuando se detecta un conflicto entre una política zonal y una global. Los valores posibles son:""(cadena vacía): Se usa el valor de la política zonal.overwrite: La política global anula la política zonal.Para obtener más detalles, consulta la marca
--rollout-conflict-behavior.
Ejemplo 1
El siguiente comando crea una política llamada
global-test-extension-policyque instala la extensiónops-agentpara el proyectotest-project. La marca--config-from-fileespecifica la ruta de acceso a un archivo local que contiene una configuración YAML para el agente de operaciones, y--rollout-predefined-planespecifica el planslow_rollout.gcloud beta compute global-vm-extension-policies create global-test-extension-policy \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --rollout-predefined-plan=slow_rollout
Ejemplo 2
El siguiente comando crea una política llamada
global-test-extension-policy-2que instala la extensiónops-agentpara el proyectotest-projecten las VMs con la etiquetaenv=prod. La prioridad de la política se establece en500, y la marca--config-from-fileespecifica la ruta de acceso a un archivo local que contiene una configuración en formato YAML para el agente de operaciones. La marca--rollout-custom-planespecifica un plan de lanzamiento personalizado.gcloud beta compute global-vm-extension-policies create global-test-extension-policy-2 \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod \ --rollout-custom-plan=projects/12345678/locations/global/rolloutPlans/test-rollout-plan
Crea una política de extensión de VM zonal
Usa uno de los siguientes métodos para crear una política de extensión de VM zonal. Esta política zonal define qué extensiones se instalarán y en qué VMs de una zona específica.
Console
- En la consola de Google Cloud , ve a la página Políticas de extensiones de VM.
- Haz clic en Crear política de extensión.
- En el campo Nombre, ingresa un nombre para la política.
- Opcional: En el campo Descripción, ingresa una descripción para la política.
- 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.
- En la lista Zona, selecciona la zona en la que deseas aplicar esta política.
- En la sección Extensiones, haz clic en Agregar extensión y sigue estos pasos para cada extensión que quieras instalar en las VMs de destino:
- En la lista Extensión, selecciona una extensión. Consulta Extensiones compatibles.
- 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.0o una 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.
- En el caso del Agente de operaciones, puedes especificar la versión
- Opcional: En el campo Contenido del archivo de configuración, ingresa los parámetros de configuración de la extensión.
- 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.
- Haz clic en Crear.
gcloud
Para crear una política de extensión de VM zonal 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-agentgoogle-cloud-sap-extensiongoogle-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 comandogcloud, 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
--configen lugar de--config-from-file, por ejemplo,EXTENSION_NAME_1="CONFIG_1". Puedes usar--config-from-fileo--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-labelsvarias 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-policyque instala la extensiónops-agenten la zonaus-central1-fpara el proyectotest-project. La marca--config-from-fileespecifica 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-2que instala la extensiónops-agenten la zonaus-central1-fpara el proyectotest-projecten las VMs con la etiquetaenv=prod. La prioridad de la política se establece en500, y la marca--config-from-fileespecifica 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?
- Obtén más información para administrar extensiones de VM.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2026-01-24 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2026-01-24 (UTC)"],[],[]] -