En este documento se describe cómo crear políticas de extensiones de máquinas virtuales, que le permiten instalar y gestionar automáticamente extensiones en un conjunto de máquinas virtuales de Compute Engine. Si defines una política, puedes asegurarte de que se instalen y mantengan extensiones específicas en las VMs que cumplan los criterios que especifiques, como las etiquetas de las VMs.
Antes de empezar
- Instala el componente beta
ejecutando el siguiente comando:
gcloud components install beta
- Consulta los conceptos básicos de VM Extension Manager.
- Consulta las cuotas de VM Extension Manager.
- Habilita la API Compute Engine en tu Google Cloud proyecto si aún no lo has hecho.
- Asegúrate de que tu máquina virtual ejecute la versión del agente invitado
20241209.01o una posterior. - Para ver los registros de depuración de los eventos de VM Extension Manager, configure los ajustes de registro del agente invitado.
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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 la CLI de Google Cloud ejecutando el siguiente comando:
gcloud initSi utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
Roles de gestión de identidades y accesos necesarios
Para obtener el permiso que necesitas para crear una política de extensiones, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de políticas de extensiones de VM (
roles/compute.vmExtensionPolicyAdmin). Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene el permiso
compute.vmExtensionPolicies.create, que es necesario para crear una política de extensiones.También puedes obtener este permiso con roles personalizados u otros roles predefinidos.
Para obtener más información sobre los roles y permisos de gestión de identidades y accesos en Compute Engine, consulta el artículo sobre roles y permisos de Compute Engine.
Prioridad de las políticas y resolución de conflictos
Cuando se aplican varias políticas a la misma VM, VM Extension Manager usa la prioridad de las políticas para resolver los conflictos.
Si dos políticas entran en conflicto en relación con la misma extensión, prevalecerá la que tenga mayor prioridad. Los valores de prioridad van de 0 a 65.535, donde un número más bajo significa una prioridad más alta. La prioridad predeterminada es 1000. Si hay varias políticas con la misma prioridad, VM Extension Manager aplica a las VMs la política que se haya actualizado más recientemente. Si se elimina una política, no se quitará la extensión si se sigue aplicando una política de menor prioridad a la VM.
Crear 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 su lugar, a medida que se implementa la política, VM Extension Manager crea políticas en cada zona en función del plan de lanzamiento. Estas políticas gestionan la instalación de extensiones en las VMs de sus respectivas zonas.
Puedes usar gcloud o el método
globalVmExtensionPolicies.insertpara crear políticas de extensión globales.Acerca de los planes de lanzamiento
Las políticas de extensiones de VM globales usan planes de lanzamiento para gestionar 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 implementa en un plazo de cinco días. El lanzamiento lento es el plan de lanzamiento predeterminado.fast_rollout: aplica la política inmediatamente a 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 tiene como objetivo 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" } } ] }
Después, puede usar este plan de lanzamiento personalizado al crear una política global, como se muestra en el ejemplo 2.
Crear una política global
Usa el comando
gcloud beta compute global-vm-extension-policies createpara crear una política de extensión de VM global: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_BEHAVIORHaz los cambios siguientes:
POLICY_NAME: un nombre para la política de extensión de VM.DESCRIPTION: una descripción opcional de la política.EXTENSION_NAME_1,EXTENSION_NAME_2: lista de extensiones separadas por comas que se añadirán a la política. Debes especificar al menos una extensión. Los valores válidos de las extensiones son los siguientes:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: una lista de pares clave-valor separados por comas, donde la clave es el nombre de la extensión y el valor es la versión de la extensión. Si no especifica una versión para una extensión, VM Extension Manager usará la versión más reciente disponible y la actualizará automáticamente cuando haya nuevas versiones.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: 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 al archivo de configuración de esa extensión. Este archivo se encuentra en la VM en la que ejecutas el comandogcloudy no en la VM en la que instalas la extensión.También puede proporcionar la configuración como una cadena insertada. Para ello, utilice 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: lista de pares clave-valor separados por comas que definen etiquetas de inclusión para un selector. Las VMs deben tener todas las etiquetas especificadas en un selector para poder orientarse a ellas. Si especifica--inclusion-labelsvarias veces, la política se aplicará a las VMs que coincidan con cualquiera de los selectores proporcionados (operador lógico OR). Si omites esta marca, la política se aplicará a todas las VMs de tu proyecto en todas las zonas.PRIORITY: un número entero que define la prioridad de la política. Cuanto mayor sea el número, mayor será la prioridad. El valor predeterminado es 0. Si varias políticas tienen la misma prioridad, se aplicará a las VMs la que se haya actualizado 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_NAMEHaz los cambios siguientes:
PROJECT_NUMBER: el proyecto en el que se define el plan de lanzamiento.ROLLOUT_PLAN_NAME: el nombre del plan de lanzamiento personalizado que has definido. 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 información, consulta la marca
--rollout-conflict-behavior.
Ejemplo 1
El siguiente comando crea una política llamada
global-test-extension-policyque instala la extensiónops-agenten el proyectotest-project. La marca--config-from-fileespecifica la ruta a un archivo local que contiene una configuración YAML para el agente de Ops, 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 en500y la marca--config-from-fileespecifica la ruta a un archivo local que contiene una configuración 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
Crear una política de extensión de VM zonal
Utilice 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 van a instalar y en qué VMs de una zona específica.
Consola
- En la Google Cloud consola, ve a la página Políticas de extensiones de VM.
- Haz clic en Crear política de extensión.
- En el campo Name (Nombre), introduce un nombre para la política.
- Opcional: En el campo Descripción, escribe una descripción de la política.
- En el campo Priority (Prioridad), especifica un número de prioridad para resolver los conflictos entre políticas. Cuanto más bajo sea el número, mayor será la prioridad. El valor predeterminado es 1000.
- En la lista Zona, selecciona la zona en la que quieras aplicar esta política.
- En la sección Extensiones, haz clic en Añadir 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 las extensiones admitidas.
- En la lista Versión, especifica el número de versión de la extensión. Déjelo en blanco para seleccionar la versión más reciente.
- En el caso del agente de Ops, puedes especificar la versión
2.58.0o una posterior. - En Extension for SAP y Extension for Compute workloads, deja el campo en blanco para seleccionar la versión más reciente.
- En el caso del agente de Ops, puedes especificar la versión
- Opcional: En el campo Config file content (Contenido del archivo de configuración), introduce los parámetros de configuración de la extensión.
- En la sección Instancias de VM de destino, selecciona las VMs de la política. Para seleccionar VMs con etiquetas específicas, haz clic en Añadir etiquetas y añade el par clave-valor.
- Haz clic en Crear.
gcloud
Para crear una política de extensiones de VM zonales y desplegarla 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
Haz los cambios siguientes:
POLICY_NAME: un nombre para la política de extensión de VM.ZONE: la zona en la que se aplica esta política.DESCRIPTION: una descripción opcional de la política.EXTENSION_NAME_1,EXTENSION_NAME_2: lista de extensiones separadas por comas que se añadirán a la política. Debes especificar al menos una extensión. Los valores válidos de las extensiones son los siguientes:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: lista de pares clave-valor separados por comas, donde la clave es el nombre de la extensión y el valor es la versión de la extensión. Si no especifica una versión de una extensión, VM Extension Manager usará la versión más reciente disponible y la actualizará automáticamente cuando haya nuevas versiones.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: lista de pares clave-valor separados por comas en la que la clave es el nombre de la extensión y el valor es la ruta al archivo de configuración de esa extensión. Esta ruta se encuentra en la VM en la que ejecutas el comandogcloud, no en la VM en la que instalas la extensión.También puede proporcionar la configuración como una cadena insertada. Para ello, utilice 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: lista de pares clave-valor separados por comas que definen las etiquetas de inclusión de un selector. Las VMs deben tener todas las etiquetas especificadas en un selector para poder segmentarlas. Si especifica--inclusion-labelsvarias veces, la política se aplicará a las VMs que coincidan con cualquiera de los selectores proporcionados (operador lógico OR). Si omite esta marca, la política se aplicará a todas las VMs de la zona especificada.PRIORITY: un número entero del 0 al 65535 que define la prioridad de la política. Cuanto más bajo sea el número, mayor será la prioridad. El valor predeterminado es 1000.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-fdel proyectotest-project. La marca--config-from-fileespecifica la ruta 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-fdel proyectotest-projecten las VMs con la etiquetaenv=prod. La prioridad de la política se establece en500y la marca--config-from-fileespecifica la ruta 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-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
Siguientes pasos
- Consulta cómo gestionar las extensiones de VM.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2026-01-15 (UTC).
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2026-01-15 (UTC)."],[],[]] -