Puedes usar Parche para aplicar parches del sistema operativo en un grupo de instancias de máquina virtual (VM).
Para aplicar parches a tus VMs, sigue estos pasos:
Antes de empezar
- Consulta las cuotas de OS Config.
- Para generar registros de auditoría de eventos de VM Manager, habilita los registros de auditoría de acceso a datos.
-
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 init
Si 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.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Limitaciones
- Solo puedes desplegar y ejecutar tareas de parche en VMs de un único Google Cloud proyecto. No puedes ejecutar tareas de parche en varios Google Cloud proyectos, aunque las VMs estén en una VPC compartida. Sin embargo, puedes ver los datos de cumplimiento de los parches de todos los proyectos.
- De forma predeterminada, Gestor de VMs no aplica parches a ninguna VM que forme parte de un grupo de instancias gestionado (MIG). La aplicación de parches en estas VMs se indica como un error en la tarea de aplicación de parches. Puedes anular este comportamiento predeterminado al crear el trabajo de parche.
Se aplican las siguientes limitaciones cuando aplicas parches a las VMs que forman parte de un MIG:
- Cuando un MIG repara una VM, la vuelve a crear a partir de la plantilla de instancia. Esto podría hacer que la VM vuelva a un estado sin parchear.
- Aplicar parches a las VMs puede provocar resultados inesperados en un MIG que tenga habilitado el escalado automático. La herramienta de escalado automático elimina las VMs parcheadas cuando la carga disminuye y crea VMs nuevas, sin ningún parche, mediante la plantilla de instancia de MIG cuando la carga aumenta. Por ejemplo, si la utilización media de la CPU es inferior a la utilización objetivo que has especificado para el autoescalado, el MIG puede eliminar algunas de las VMs parcheadas al reducir la escala.
Sistemas operativos compatibles
Para ver la lista completa de sistemas operativos y versiones que admiten Patch, consulta Detalles del sistema operativo.
Configurar una máquina virtual
Para usar la función Parche, sigue estos pasos:
- Configura VM Manager en todas las VMs.
- En el caso de las VMs Windows, Google recomienda inhabilitar las actualizaciones automáticas en las VMs. De esta forma, se reducen los conflictos entre las actualizaciones automáticas de Windows y el servicio de parches.
Permisos
Los propietarios de un Google Cloud proyecto tienen acceso completo para ejecutar y gestionar trabajos de parche. En el caso del resto de los usuarios, debes conceder permisos. Puedes conceder uno de los siguientes roles granulares:
roles/osconfig.patchJobExecutor
: contiene permisos para ejecutar, cancelar, obtener y mostrar tareas de parche. También contiene permisos para ver los detalles de la instancia de un trabajo de parche.roles/osconfig.patchJobViewer
: contiene permisos de acceso de solo lectura para obtener y enumerar trabajos de parche. También contiene permisos para ver los detalles de la instancia de un trabajo de parche.
Por ejemplo, para conceder a un usuario acceso para ejecutar trabajos de parche, usa el siguiente comando:
gcloud projects add-iam-policy-binding project-id \ --member user:user-id@gmail.com \ --role roles/osconfig.patchJobExecutor
Haz los cambios siguientes:
project-id
: el ID del proyecto.user-id
: nombre de usuario de Google Workspace del usuario.
Ejecutar tareas de parches
Puedes ejecutar una tarea de parche mediante la Google Cloud consola, la CLI de Google Cloud o REST.
Cuando ejecutas una tarea de aplicación de parches, el proceso se inicia simultáneamente en todas las instancias especificadas por el filtro de instancias.
Una vez que hayas iniciado un trabajo de parche, podrás monitorizar tus parches mediante el panel de control de parches. Los datos tardan aproximadamente 30 minutos en aparecer en el panel de control después de que se inicie una tarea de parche.
Consola
- En la Google Cloud consola, ve a Compute Engine > Gestor de VMs > Parche.
- Haga clic en Nuevo despliegue de parches.
En la sección VMs de destino, selecciona la zona que contiene las VMs a las que quieres aplicar el parche. También puedes seleccionar todas las zonas.
Después de seleccionar las zonas, puedes filtrar aún más las máquinas virtuales de esa zona.
Por ejemplo, para aplicar el parche solo a ciertas VM de las zonas seleccionadas, introduce los filtros correspondientes a su nombre y etiqueta, como se muestra a continuación:
- Prefijo del nombre:
test-
- Etiquetas:
env=dev
yapp=web
- Prefijo del nombre:
En la sección Configuración del parche, configure el parche.
- Especifica un nombre para el parche.
- Selecciona las actualizaciones necesarias para tu sistema operativo. Para obtener más información, consulta la configuración de parches.
En la sección Programación, haz lo siguiente:
- Selecciona una programación. Para ejecutar la tarea de parcheo inmediatamente, selecciona Iniciar ahora.
- Opcional: Define una duración o una ventana de mantenimiento.
En la sección Opciones de lanzamiento, configure las opciones de lanzamiento de parches:
- Selecciona si quieres aplicar el parche a una zona cada vez o a varias zonas simultáneamente.
- Define un presupuesto de interrupción. Un presupuesto de interrupciones es el número o el porcentaje de VMs de una zona que quieres que se interrumpan a la vez durante el proceso de aplicación de parches.
Opcional: En la sección Opciones avanzadas, puedes completar las siguientes tareas:
- Selecciona una opción de reinicio.
- Sube las secuencias de comandos previas y posteriores a la revisión. Para obtener más información sobre las secuencias de comandos anteriores y posteriores a la revisión, consulta Especificar secuencias de comandos anteriores y posteriores a la revisión.
Haz clic en Desplegar.
gcloud
Usa el comando
os-config patch-jobs execute
para ejecutar un trabajo de parche. Sustituyeinstance-filter
por el filtro de instancias que quieras. Para obtener más información sobre los filtros de instancias, consulta Filtros de instancias.gcloud compute os-config patch-jobs execute instance-filter
Para obtener más información sobre las actualizaciones que se aplican, consulta qué se incluye en un trabajo de parche del SO. Para personalizar tus actualizaciones, usa las marcas opcionales.
Ejemplos
Ejemplo 1 Para ejecutar un trabajo de parche con las siguientes configuraciones:
- Nombre de la instancia:
instance-1
- Zona:
us-east1-b
Descripción:
patch for instance-1
Ejecutarías el siguiente comando:
gcloud compute os-config patch-jobs execute \ --instance-filter-names="zones/us-east1-b/instances/instance-1" \ --description "patch for instance-1"
Ejemplo 2 Supongamos que quiere ejecutar un trabajo de parche de forma asíncrona con las siguientes configuraciones:
- El parche debe ejecutarse en todas las instancias del proyecto.
- La tarea de parche debe agotar el tiempo de espera y detenerse después de 1 hora y 30 minutos.
- Las máquinas deben reiniciarse según la configuración del sistema después de instalar las actualizaciones.
- En las VMs que ejecutan Apt, los parches se aplican con
apt dist-upgrade
. - En las VMs que ejecutan Windows, solo se aplican parches para la
KB4339284
actualización. - En las VMs que ejecutan Yum, las actualizaciones se realizan con la utilidad
yum update-minimal --security
.
Ejecutarías el siguiente comando:
gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --duration="1h30m" --reboot-config="DEFAULT" \ --apt-dist --windows-exclusive-patches=4339284 \ --yum-minimal --yum-security \ --async
REST
En la API, crea una solicitud
POST
para ejecutar un nuevo trabajo de parche. Debe definir explícitamente todos los campos de configuración obligatorios, tal como se describe en la documentación de la APIpatchJobs.execute
.Para obtener más información sobre las actualizaciones que se aplican, consulta qué se incluye en un trabajo de parche del SO. Para personalizar las actualizaciones, usa los parámetros
PatchConfig
.Por ejemplo, un trabajo de parche que solo incluya los campos obligatorios sería similar al siguiente.
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter": instance-filter }
Haz los cambios siguientes:
project-id
: tu ID de proyecto.instance-filter
: los parámetros de filtro que quieras. Para obtener más información sobre los filtros de instancias, consulte Filtros de instancias.
Ejemplos
Ejemplo 1 Supongamos que quiere ejecutar un trabajo de parche en una instancia llamada
instance1
ubicada enus-east1-b
. En este ejemplo, añadimos una descripción y especificamos que el trabajo se ejecute durante 1 hora y 30 minutos. Sustituyeproject-id
por el ID de tu proyecto.POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "description":"patch instance1 in us-east1-b", "duration":"5400s", "instanceFilter":{ "instances":[ "zones/us-east1-b/instances/instance1" ] } }
Ejemplo 2 El siguiente trabajo de parche selecciona las VMs que tienen las siguientes configuraciones:
- Tener las etiquetas
env=dev
yapp=web
. - Están en
asia-east1-b
oasia-east1-c
. - Tener el prefijo
test-
.
En el siguiente comando, sustituye
project-id
por el ID de tu proyecto.POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "groupLabels":[ { "labels":{ "env":"dev", "app":"web" } } ], "instanceNamePrefixes":[ "test-" ], "zones":[ "asia-east1-b", "asia-east1-c" ] } }
Ejemplo 3
Supongamos que quieres ejecutar un trabajo de parche con las siguientes configuraciones:
- El parche debe ejecutarse en todas las instancias del proyecto.
- La tarea de parche debe agotar el tiempo de espera y detenerse después de 1 hora y 30 minutos. La API requiere que el tiempo se exprese en segundos, por lo que debes definirlo como 5400s.
- Las máquinas deben reiniciarse según la configuración del sistema después de instalar las actualizaciones.
- En las VMs que ejecutan Apt, los parches se aplican con
apt dist-upgrade
. - En las VMs que ejecutan Windows, solo se aplican parches para la
KB4339284
actualización. - En las VMs que ejecutan Yum, las actualizaciones se realizan con la utilidad
yum update-minimal --security
.
Crearías la siguiente solicitud:
En el siguiente comando, sustituye
project-id
por el ID de tu proyecto.POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "duration":"5400s", "instanceFilter":{ "all":true }, "patchConfig":{ "rebootConfig":"DEFAULT", "apt":{ "type":"DIST" }, "yum":{ "security":true, "minimal":true }, "windowsUpdate":{ "exclusivePatches":"4339284" } } }
Filtros de instancias
Puedes especificar las instancias que se incluirán en una tarea de parche mediante filtros. Se admiten los siguientes filtros para las tareas de parche:
Filtrar por nombre: limita la tarea de parche a las instancias con nombres específicos. Los nombres de las instancias deben especificarse mediante el URI completo. Los formatos de URI admitidos son los siguientes:
zones/zone/instances/instance-name
projects/project-id/zones/zone/instances/instance-name
https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
Filtrar por prefijo de nombre: limita el trabajo de parche a las instancias que tengan un prefijo específico en su nombre.
Filtrar por zona: limita el trabajo de parche a las instancias de una zona específica.
Filtrar por etiqueta: limita el trabajo de parche a las instancias con etiquetas específicas.
También puedes ejecutar trabajos de parche en todas las instancias de un proyecto si asignas el valor
true
al campoall
deinstanceFilter
. Google Cloud Para obtener más información, consulta los filtros de instancias de ejemplo.Ejemplos de filtros de instancias
Situación Filtro de gcloud Filtro de API Todas las instancias de un Google Cloud proyecto --instance-filter-all
{ "instanceFilter":{ "all":"true" } }
Una instancia con el nombre instance1
ubicada en la zonaus-east1-b
.--instance-filter-names="zones/us-east1-b/instances/instance1"
{ "instanceFilter":{ "instances":[ "zones/us-east1-b/instances/instance1" ] } }
Instancias con el prefijo app-
--instance-filter-name-prefixes="app-"
{ "instanceFilter":{ "instanceNamePrefixes":[ "app-" ] } }
Instancias en las zonas us-east1-b
ous-east1-c
--instance-filter-zones="us-east1-b","us-east1-c"
{ "instanceFilter":{ "zones":[ "us-east1-b", "us-east1-c" ] } }
Instancias con la etiqueta combinada env=dev
yapp=web
, así como instancias conenv=dev
yapp=worker
.--instance-filter-group-labels="env=dev,app=web" --instance-filter-group-labels="env=dev,app=worker"
{ "instanceFilter":{ "groupLabels":[ { "labels":{ "env":"dev", "app":"web" } }, { "labels":{ "env":"dev", "app":"worker" } } ] } }
Combinar filtros de instancia
También se pueden combinar filtros de instancias. Por ejemplo, para ejecutar una tarea de parche para las instancias que tienen el prefijo
test-
, que se encuentran en la zonaus-east1-c
y que tienen las etiquetasenv=dev
yapp=web
, ejecuta el siguiente comando:gcloud compute os-config patch-jobs execute \ --instance-filter-name-prefixes="test-" \ --instance-filter-zones="us-east1-c" \ --instance-filter-group-labels="env=prod,app=web"
Configuración del parche
Cuando ejecutas un trabajo de parche, puedes especificar parámetros para controlar los parches que se aplican en la VM. Los parámetros de configuración de los parches dependen de la plataforma y a menudo se transfieren a las herramientas de actualización del sistema subyacente. Los parches reales proceden de los repositorios de paquetes (Linux) o del servidor de Windows Update (Windows) que esté configurado en la VM.
Puedes especificar las siguientes configuraciones de parches para tus VMs:
- En Windows, especifica la clasificación de los parches que se van a aplicar (por ejemplo,
Security
yCritical
) o segmentar por bases de conocimientos específicas para excluirlas. Para obtener más información sobre la clasificación de parches, consulta la documentación de asistencia de Microsoft. En RHEL, Rocky Linux y CentOS, el sistema subyacente es
yum
.- En el caso de los parches destinados a máquinas virtuales con RHEL y Rocky Linux, puedes especificar los paquetes
security
yminimal
. - En el caso de las VMs de CentOS, no hay metadatos
security
en el repositorioyum
de CentOS. Por lo tanto, no es necesario especificar la opciónsecurity
al actualizar los paquetes de seguridad. Si no especificas ningún paquete, el trabajo de parche actualiza todos los paquetes, incluidos los que tienen actualizaciones de seguridad. - También puede excluir paquetes específicos. Para obtener más información, consulta las páginas del manual de
yum
.
- En el caso de los parches destinados a máquinas virtuales con RHEL y Rocky Linux, puedes especificar los paquetes
En Debian y Ubuntu, el sistema subyacente es
apt
. En el caso de los parches destinados a estas VMs, puedes especificardist-upgrade
o una actualización estándar. También puedes excluir paquetes específicos. Para obtener más información, consulta las páginas del manual de Debian o las páginas del manual de Ubuntu.En SuSE, el sistema subyacente es
zypper
, que usa específicamente parches de zypper. En el caso de los parches destinados a estas máquinas virtuales, puede especificar opciones como las siguientes:with update
: actualiza todos los paquetes que no estén cubiertos por parcheswith optional
: los parches opcionales se tratan según sea necesario- Las categorías o la gravedad de los parches que se van a aplicar
También puedes excluir parches específicos.
De forma opcional, en todos los sistemas operativos compatibles, puedes seleccionar la opción de instalar solo los parches aprobados especificando estas actualizaciones. Esto te permite introducir una lista de paquetes o parches aprobados. Cuando seleccionas estos parches aprobados, solo se instalan los paquetes o parches aprobados. El resto de los parámetros de configuración de los parches se omiten durante la actualización.
Ejemplos
Consola
- Sigue los pasos que se indican en la pestaña de la consola para crear un trabajo de parche o un despliegue de parche.
- En la sección Configuración de parche, selecciona los parámetros del trabajo de parche.
- Realiza las configuraciones adicionales que necesites para tu tarea de parche o tu implementación.
- Haz clic en Desplegar.
gcloud
Por ejemplo, para ejecutar un trabajo de parche en todas las instancias de la zona
northamerica-northeast1-a
con configuraciones de parches específicas para diferentes sistemas operativos, ejecuta el comandogcloud compute os-config patch-jobs execute
:gcloud compute os-config patch-jobs execute \ --instance-filter-zones="northamerica-northeast1-a" \ --apt-dist \ --yum-security \ --yum-minimal \ --zypper-categories=security \ --windows-classifications=critical,security \ --reboot-config=default
Para obtener más información sobre las opciones admitidas, ejecuta el siguiente comando:
gcloud compute os-config patch-jobs execute --help
REST
Por ejemplo, para ejecutar un trabajo de parche en todas las instancias de la zona
northamerica-northeast1-a
con configuraciones de parches específicas para diferentes sistemas operativos, ejecuta el siguiente comando:POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "zones":[ "northamerica-northeast1-a" ] }, "patchConfig":{ "apt": { "type": "dist-upgrade" }, "yum": { "security": true, "minimal": true }, "zypper": { "categories": ["security"] }, "windowsUpdate": { "classifications": ["CRITICAL", "SECURITY"] }, "rebootConfig": "DEFAULT" } }
Para obtener más información sobre los parámetros admitidos, consulta la documentación de
PatchConfig API
.Ventana de mantenimiento
Una ventana de mantenimiento es el periodo total durante el que permites que se ejecute un trabajo de parche. Las tareas de parche se agotarán si no se completan en la ventana de mantenimiento especificada.
Por ejemplo, si defines una ventana de mantenimiento de
60 minutes
, no se iniciará ningún trabajo de parche nuevo 60 minutos después de la hora de inicio. Algunos procesos, como la descarga de un archivo o el reinicio, pueden producirse fuera de este periodo de mantenimiento, pero no se iniciará ningún trabajo de parche nuevo.Opciones de reinicio
Cuando ejecutes un trabajo de parche, puedes especificar las opciones de reinicio del parche. Estas son las opciones disponibles:
- Valor predeterminado: el agente decide si es necesario reiniciar comprobando señales conocidas en cada SO. Es posible que se produzcan varios reinicios durante la aplicación de parches y que se produzcan antes de que se instale ningún parche.
- Siempre: la máquina se reinicia después de que se complete la actualización.
- Nunca: la máquina no se reiniciará cuando se complete la actualización. En algunos casos, esto puede significar que no se apliquen todos los parches por completo.
Secuencias de comandos previas y posteriores a la aplicación de parches
Al ejecutar una tarea de parche, puede especificar las secuencias de comandos que se ejecutarán como parte del proceso de aplicación de parches. Estas secuencias de comandos son útiles para realizar tareas como cerrar una aplicación y realizar comprobaciones del estado.
- Las secuencias de comandos previas a la revisión se ejecutan antes de que comience la revisión. Si se requiere reiniciar el sistema antes de que comience la operación de aplicación de parches, la secuencia de comandos previa al parche se ejecuta antes del reinicio.
- Las secuencias de comandos posteriores al parche se ejecutan después de completar el proceso de aplicación del parche. Si se requiere un reinicio del sistema como parte del parche, la secuencia de comandos posterior al parche se ejecuta después del reinicio.
Un trabajo de parche acepta una secuencia de comandos previa al parche y otra posterior al parche para Linux, así como una secuencia de comandos previa al parche y otra posterior al parche para Windows. Las secuencias de comandos de Linux y Windows deben proporcionarse con las marcas, los parámetros o las secciones correspondientes cuando se especifiquen desde Google Cloud CLI, REST o la Google Cloud consola, respectivamente. Las secuencias de comandos de Linux solo se ejecutan en máquinas virtuales Linux, y las secuencias de comandos de Windows solo se ejecutan en máquinas virtuales Windows.
Estos archivos de secuencia de comandos se pueden almacenar en la VM o en un segmento de Cloud Storage versionado.
Almacenar secuencias de comandos de parches en segmentos de Cloud Storage
Si quieres usar un segmento de Cloud Storage para almacenar tus secuencias de comandos, crea un segmento de Cloud Storage y sube tus secuencias de comandos al segmento. Cuando utilices un segmento de Cloud Storage, ten en cuenta lo siguiente:
- Si tu objeto de Cloud Storage no es de lectura pública, asegúrate de que la cuenta de servicio adjunta a la instancia tenga los permisos de gestión de identidades y accesos necesarios para leer los objetos de Cloud Storage. Para asegurarte de que tienes los permisos correctos, consulta la configuración de permisos del objeto de Cloud Storage.
- Cuando seleccionas una secuencia de comandos de Cloud Storage mediante la consola, se usa de forma predeterminada la versión más reciente del objeto de Cloud Storage especificado.Google Cloud
Si tu organización aplica la restricción de ubicación de recursos, debes almacenar tus secuencias de comandos en segmentos de Cloud Storage de las regiones y zonas que permita la política de tu organización.
Consola
- Sigue los pasos que se indican en la pestaña de la consola para crear un trabajo de parche o un despliegue de parche.
- En la sección Opciones avanzadas, tanto en la sección anterior al parche como en la posterior, haz clic en Buscar. Se muestra una página de objeto de Cloud Storage.
- En la página del objeto de Cloud Storage, selecciona el contenedor de Cloud Storage que contiene la secuencia de comandos y, a continuación, selecciona el objeto o el archivo de Cloud Storage.
- Realiza las configuraciones adicionales que necesites para tu tarea de parche o tu implementación.
- Haz clic en Desplegar.
gcloud
Por ejemplo, para ejecutar un trabajo de parche en todas las instancias de la zona
northamerica-northeast1-a
con secuencias de comandos anteriores y posteriores al parche para instancias de Linux y Windows, ejecuta el siguiente comando:gcloud compute os-config patch-jobs execute \ --instance-filter-zones="northamerica-northeast1-a" \ --async \ --pre-patch-linux-executable="/tmp/pre_patch_script.sh" \ --post-patch-linux-executable="gs://my-patch-scripts/linux/post_patch_script#1523477886880" \ --pre-patch-windows-executable="C:\\Users\\user\\pre-patch-script.cmd" \ --post-patch-windows-executable="gs://my-patch-scripts/windows/post_patch_script.ps1#135920493447"
Para obtener más información sobre los formatos de archivo aceptados, ejecuta el siguiente comando:
gcloud compute os-config patch-jobs execute --help
REST
Por ejemplo, para ejecutar un trabajo de parche en todas las instancias de la zona
northamerica-northeast1-a
con secuencias de comandos anteriores y posteriores al parche para instancias de Linux y Windows, ejecuta el siguiente comando:POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "zones":[ "northamerica-northeast1-a" ] }, "patchConfig":{ "preStep":{ "linuxExecStepConfig":{ "localPath":"/tmp/pre_patch_script.sh" }, "windowsExecStepConfig":{ "interpreter":"SHELL", "localPath":"C:\\Users\\user\\pre-patch-script.cmd" } }, "postStep":{ "linuxExecStepConfig":{ "gcsObject":{ "bucket":"my-patch-scripts", "generationNumber":"1523477886880", "object":"linux/post_patch_script" } }, "windowsExecStepConfig":{ "gcsObject":{ "bucket":"my-patch-scripts", "generationNumber":"135920493447", "object":"windows/post_patch_script.ps1" }, "interpreter":"POWERSHELL" } } } }
Para obtener más información sobre los formatos de archivo aceptados, consulta la sección
ExecStepConfig
de la documentación de la APIPatchConfig
.Opciones de lanzamiento de parches
Puedes aplicar parches a las VMs de una zona a la vez (zona por zona) o a todas las zonas a la vez (zonas simultáneas).
Además de seleccionar la zona de lanzamiento, también puedes especificar un presupuesto de interrupción de la zona para tus VMs.
Cobertura para interrupciones de la zona
Un presupuesto de interrupción es el número (o porcentaje) máximo de VMs por zona que se pueden interrumpir en un momento dado.
¿Qué se considera una VM interrumpida?
Durante la aplicación de parches, se considera que una VM se interrumpe desde el momento en que se notifica al agente de configuración del SO que empiece hasta que se complete la aplicación de parches. Este tiempo de interrupción incluye el tiempo necesario para completar el reinicio y cualquier paso posterior a la aplicación del parche.
Una máquina virtual también se contabiliza como parte del presupuesto de interrupción si cumple alguna de las siguientes condiciones:
- La operación de aplicación de parches falla al aplicar los parches
- La operación de parcheo falla al ejecutar los pasos previos o posteriores al parche
- La operación de parche no responde con una notificación de éxito antes de que se agote el tiempo de espera
Cómo funcionan los presupuestos de interrupción
En las implementaciones por zonas, si se supera el presupuesto de interrupción de una zona, la tarea de parche se detiene. Esto ocurre porque para continuar con la siguiente zona es necesario completar el proceso de parche en la zona anterior.
Por ejemplo, si el presupuesto de interrupción tiene un valor de 10 y 8 VMs no se pueden parchear en la zona actual, el trabajo de parcheo seguirá parcheando 2 VMs a la vez hasta que se complete la zona. Cuando se complete correctamente esa zona, se empezarán a aplicar parches a 10 VMs a la vez en la siguiente zona. Si no se pueden parchear 10 VMs de la siguiente zona, el trabajo de parche se detendrá.
Ejemplos
Consola
- Sigue los pasos que se indican en la pestaña de la consola para crear un trabajo de parche o un despliegue de parche.
- En la sección Opciones de lanzamiento, configura las opciones de lanzamiento:
- Selecciona si quieres aplicar el parche a una zona cada vez o a todas las zonas simultáneamente.
- Define el presupuesto de interrupción. Un presupuesto de interrupciones es el número o el porcentaje de VMs de una zona que quieres que se interrumpan a la vez durante el proceso de aplicación de parches.
- Realiza las configuraciones adicionales que necesites para tu tarea de parche o tu implementación.
- Haz clic en Desplegar.
gcloud
Ejemplo 1
En este ejemplo se muestra el comando
os-config patch-jobs execute
para ejecutar un trabajo de parche con las siguientes especificaciones:- Aplicar parches a todas las VMs de tu proyecto
- Aplicar parches a las VMs por zonas
- Asegurarse de que no se interrumpan más de 10 VMs de la misma zona al mismo tiempo
gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=zone-by-zone \ --rollout-disruption-budget=10
Ejemplo 2
En este ejemplo se muestra el comando
os-config patch-jobs execute
para ejecutar un trabajo de parche con las siguientes especificaciones:- Aplicar parches a todas las VMs de tu proyecto
- Aplicar parches a zonas simultáneamente
- Asegurarse de que no se interrumpa más del 50 % de las VMs de la misma zona en un momento dado
gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=concurrent-zones \ --rollout-disruption-budget-percent=50
REST
En este ejemplo se muestra el método
patchJobs.execute
para ejecutar un trabajo de parche con las siguientes especificaciones:- Aplicar parches a todas las VMs de las zonas
us-central1-a
,us-central1-c
yus-central1-f
- Aplicar parches a zonas simultáneamente
- Asegurarse de que no se interrumpa más del 25 % de las instancias de la misma zona en un momento dado
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "zones":[ "us-central1-a", "us-central1-c", "us-central1-f" ] }, "rollout": { "disruptionBudget": { "percent": 25 }, "mode": "CONCURRENT_ZONES" } }
Para obtener más información sobre el lanzamiento de parches, consulta la documentación de la API
PatchRollout
.Habilitar la aplicación de parches en software de Microsoft en máquinas virtuales Windows
Cuando ejecutas una tarea de parche en VMs de Windows, de forma predeterminada, Patch aplica solo los parches del sistema operativo Windows.
Puedes aplicar actualizaciones para software de Microsoft, como Microsoft SQL Server, SharePoint Server o .NET Framework, que se ejecutan en tus VMs Windows cuando ejecutas un trabajo de parche. De forma predeterminada, la aplicación de parches a estas aplicaciones está inhabilitada para evitar interrupciones en el servicio y separar las actualizaciones planificadas de estos softwares. Para habilitar la aplicación de parches de software de Microsoft automáticamente, puedes usar la interfaz de usuario de Windows o PowerShell.
Interfaz de Windows
- En el menú Inicio de Windows, selecciona Configuración > Actualización y seguridad > Windows Update.
- En la sección Opciones avanzadas, activa Recibir actualizaciones de otros productos de Microsoft al actualizar Windows.
PowerShell
$service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager' $service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")
Depurar una tarea de parche
Si el parche falla, puedes seguir estos pasos para encontrar y resolver los problemas.
Consulta los detalles de la instancia de la tarea de parche afectada. De esta forma, podrás identificar qué instancias han fallado o en qué estado se han quedado bloqueadas. La lista de detalles de la instancia también contiene un breve mensaje de error de cada instancia.
Si un parche falla con el estado
NO_AGENT_DETECTED
oTIMED_OUT
, suele significar que el servicio ha enviado una solicitud al agente para que empiece a aplicar el parche, pero no ha recibido respuesta del agente. Revisa las posibles causas y soluciones que se indican a continuación:- La instancia no se está ejecutando. Para solucionar este problema, inicia la instancia de VM.
- Para verificar la configuración, consulta la lista de comprobación de la verificación.
- Los ajustes de red de la red de VPC o de la instancia no permiten que el agente de configuración del SO se comunique con la API OS Config. Para solucionar este problema, comprueba la configuración de red.
Si los detalles de la instancia no proporcionan suficiente información, consulta los registros de Cloud Logging o la consola del puerto serie. El agente de configuración del SO escribe sus entradas de registro en ambas ubicaciones. En Cloud Logging, puede filtrar por ID de tarea de parche para ver todas las entradas de registro relacionadas con esa tarea. También puedes habilitar el registro de depuración definiendo el
osconfig-log-level=debug
valor de metadatos a nivel de VM o de proyecto. Google Cloud
Siguientes pasos
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: 2025-09-12 (UTC).
-