Crear trabajos de aplicación de parches.


Puedes usar Patch para aplicar parches de sistema operativo en un grupo de instancias de máquinas virtuales (VMs).

Sigue estos pasos para aplicar parches a las VM:

  1. Configura la VM.
  2. Ejecuta un trabajo de aplicación de parche.

Antes de comenzar

  • Revisa las cuotas de configuración del SO.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Limitaciones

  • Puedes implementar y ejecutar trabajos de aplicación de parche solo para VMs en un único proyecto de Google Cloud. No puedes ejecutar trabajos de aplicación de parche en los proyectos de Google Cloud, incluso si las VMs están en una VPC compartida. Sin embargo, puedes ver los datos de cumplimiento de los parches en todos los proyectos.
  • Se aplican las siguientes limitaciones cuando aplicas parches a las VMs que forman parte de un grupo de instancias administrado (MIG):
    • Cuando un MIG repara una VM, la vuelve a crear según la plantilla de instancias. Esto puede revertir la VM a un estado sin parche.
    • La aplicación de parches a las VMs puede generar resultados inesperados en un MIG que tiene habilitado el ajuste de escala automático. El escalador automático borra las VMs con parches cuando la carga disminuye y crea nuevas VMs, sin parches, mediante la plantilla de instancias de MIG cuando la carga aumenta. Por ejemplo, si el uso de CPU promedio es menor que el uso objetivo que especificaste para el ajuste de escala automático, MIG puede quitar algunas de las VMs con parches mientras se reduce la escala.

Sistemas operativos compatibles

Para obtener una lista completa de los sistemas operativos y las versiones compatibles con los trabajos de aplicación de parches, consulta Detalles de los sistemas operativos.

Configura la VM.

Para usar la función de aplicación de parches, completa los siguientes pasos:

  1. Para todas las VM, configura VM Manager.
  2. Para las VM de Windows, Google recomienda inhabilitar las actualizaciones automáticas en ellas. Esto reduce los conflictos entre las actualizaciones automáticas de Windows y el servicio de aplicación de parches.

Permisos

Los propietarios de un proyecto de Google Cloud tienen acceso completo para ejecutar y administrar trabajos de aplicación de parches. Para el resto de los usuarios, debes otorgar permisos. Puedes otorgar una de las siguientes funciones detalladas:

  • roles/osconfig.patchJobExecutor contiene permisos para ejecutar, cancelar, obtener y enumerar trabajos de aplicación de parche. También se pueden ver los detalles de la instancia de un trabajo de aplicación de parche.
  • roles/osconfig.patchJobViewer contiene permisos de acceso de solo lectura para obtener y enumerar trabajos de aplicación de parches. También se pueden ver los detalles de la instancia de un trabajo de aplicación de parche.

Por ejemplo, a fin de otorgar a un usuario acceso para ejecutar trabajos de aplicación de parches, usa el siguiente comando:

gcloud projects add-iam-policy-binding project-id \
    --member user:user-id@gmail.com \
    --role roles/osconfig.patchJobExecutor

Reemplaza lo siguiente:

  • project-id: El ID del proyecto
  • user-id: El nombre de usuario de Google Workspace.

Ejecuta trabajos de aplicación de parches

Puedes ejecutar un trabajo de aplicación de parche con la consola de Google Cloud, Google Cloud CLI o REST. .

Cuando ejecutas un trabajo de aplicación de parche, la aplicación de los parches a las VM se inicia simultáneamente en todas las instancias especificadas en el filtro.

Después de iniciar un trabajo de aplicación de parche, puedes supervisar los parches con el panel de aplicación de parches. Una vez que se inicia un trabajo de aplicación de parche, los datos demoran unos 30 minutos en propagarse al panel.

Consola

  1. En la consola de Google Cloud, ve a la página Compute Engine > VM Manager > Parche.

    Ir a la página Parche

  2. Haz clic en Nueva implementación de parche.
  3. En la sección VM de destino, elige la zona que contiene las VM a las que deseas aplicarles el parche. También puedes elegir todas las zonas.

    Después de elegir las zonas, puedes filtrar aún más las VM dentro de esa zona.

    Por ejemplo, para aplicar parches a VM específicas en las zonas que seleccionaste, ingresa el nombre y los filtros de etiqueta similares a los siguientes:

    • Prefijo del nombre: test-
    • Etiquetas: env=dev y app=web
  4. En la sección Configuración del parche, completa estos datos:

    1. Especifica un Nombre para el parche.
    2. Elige las actualizaciones necesarias para el sistema operativo. Para obtener más información, consulta configuración de parches.
  5. En la sección Programa, completa lo siguiente:

  6. En la sección Opciones de lanzamiento, configura las opciones de lanzamiento de parches:

    • Elige si deseas aplicar parches en una zona por vez o en varias zonas de forma simultánea.
    • Establece un presupuesto de interrupción. Un presupuesto de interrupción es la cantidad o el porcentaje de VM en la zona que deseas que el proceso de aplicación de parches interrumpa al mismo tiempo.
  7. De manera opcional, puedes realizar las siguientes tareas en la sección Opciones avanzadas:

    • Elige una opción de reinicio.
    • Sube secuencias de comandos para antes y después de la aplicación del parche. Para obtener más información sobre las secuencias de comandos para antes y después de aplicar un parche, consulta esta sección.
  8. Haz clic en Implementar.

gcloud

Usa el comando os-config patch-jobs execute para ejecutar un trabajo de aplicación de parche. Reemplaza instance-filter con el filtro de instancia que desees. Para obtener más información sobre los filtros de instancia, consulta esta sección.

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 aplicación de parche del SO. Para personalizar tus actualizaciones, usa las marcas opcionales.

Ejemplos

Ejemplo 1 Supón que quieres ejecutar un trabajo de aplicación de parche con la siguiente configuración:

  • Nombre de la instancia: instance-1
  • Zona: us-east1-b
  • Descripción: patch for instance-1

    Tendrías que ejecutar 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 Supón que deseas ejecutar un trabajo de aplicación de parche de forma asíncrona con la siguiente configuración:

  • La aplicación del parche debe ejecutarse en todas las instancias del proyecto.
  • El trabajo de aplicación del parche debe tener un tiempo de espera máximo de 1 hora y 30 minutos, luego de lo cual debe detenerse.
  • Las máquinas deben reiniciarse según la configuración del sistema después de que se instalen las actualizaciones.
  • En las VM que ejecutan Apt, la aplicación del parche se hace mediante apt dist-upgrade.
  • En las VM que ejecutan Windows, solo se aplican parches para la actualización KB4339284.
  • En las VM que ejecutan Yum, el parche se hace con la utilidad yum update-minimal --security.

Tendrías que ejecutar 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 aplicación de parche. Debes definir explícitamente todos los campos de configuración obligatorios como se describe en la documentación de la API de patchJobs.execute.

Para obtener más información sobre las actualizaciones que se aplican, consulta qué se incluye en un trabajo de aplicación de parche del SO. Para personalizar tus actualizaciones, usa los parámetros PatchConfig.

Por ejemplo, un trabajo de aplicación de parche que solo tenga los campos obligatorios sería similar a esto:

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter": instance-filter
}

Reemplaza lo siguiente:

  • project-id: ID del proyecto
  • instance-filter: los parámetros de filtro que deseas; para obtener más información sobre los filtros de instancia, consulta esta sección.

Ejemplos

Ejemplo 1 Supongamos que deseas ejecutar un trabajo de aplicación de parche en una instancia llamada instance1 ubicada en us-east1-b. En este ejemplo, se agrega una descripción y se especifica que el trabajo se ejecute durante 1 hora y 30 minutos. Reemplaza project-id con 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 En el siguiente trabajo de aplicación de parche, se seleccionan las VM que tengan la siguiente configuración:

  • Tienen las etiquetas env=dev y app=web.
  • Están en asia-east1-b o asia-east1-c.
  • Llevan el prefijo test-.

En el siguiente comando, reemplaza 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 deseas ejecutar un trabajo de aplicación de parche con la siguiente configuración:

  • La aplicación del parche debe ejecutarse en todas las instancias del proyecto.
  • El trabajo de aplicación del parche debe tener un tiempo de espera máximo de 1 hora y 30 minutos, luego de lo cual debe detenerse. La API requiere que el tiempo se exprese en segundos, por lo que debes usar el valor 5400s.
  • Las máquinas deben reiniciarse según la configuración del sistema después de que se instalen las actualizaciones.
  • En las VM que ejecutan Apt, la aplicación del parche se hace mediante apt dist-upgrade.
  • En las VM que ejecutan Windows, solo se aplican parches para la actualización KB4339284.
  • En las VM que ejecutan Yum, el parche se hace con la utilidad yum update-minimal --security.

Deberías crear la siguiente solicitud:

En el siguiente comando, reemplaza 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 instancia

Puedes usar filtros para especificar las instancias que deseas incluir en un trabajo de aplicación de parche. Se admiten los siguientes filtros para trabajos de aplicación de parche:

  • Filtrar por nombre: Limita el trabajo de aplicación de parche a las instancias que tengan nombres específicos. Los nombres de instancia se deben especificar 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 aplicación de parche a las instancias que lleven un prefijo específico en el nombre.

  • Filtrar por zona: Limita el trabajo de aplicación de parche a las instancias ubicadas en una zona específica.

  • Filtrar por etiqueta: Limita el trabajo de aplicación de parche a las instancias que tengan etiquetas específicas.

También puedes ejecutar trabajos de aplicación de parche en todas las instancias de un proyecto de Google Cloud si configuras el campo all de instanceFilter en true. Para obtener más información, consulta los ejemplos de filtros de instancia.

Ejemplo de filtros de instancia

Situación Filtro de gcloud Filtro de API
Todas las instancias de un proyecto de Google Cloud

--instance-filter-all

{
  "instanceFilter":{
    "all":"true"
  }
}
Una instancia con el nombre instance1, ubicada en la zona us-east1-b

--instance-filter-names="zones/us-east1-b/instances/instance1"

{
  "instanceFilter":{
    "instances":[
      "zones/us-east1-b/instances/instance1"
    ]
  }
}
Instancias que llevan el prefijo app-

--instance-filter-name-prefixes="app-"

{
  "instanceFilter":{
    "instanceNamePrefixes":[
      "app-"
    ]
  }
}
Instancias ubicadas en las zonas us-east1-b o us-east1-c

--instance-filter-zones="us-east1-b","us-east1-c"

{
  "instanceFilter":{
    "zones":[
      "us-east1-b",
      "us-east1-c"
    ]
  }
}
Instancias con la combinación de etiquetas env=dev y app=web, y también instancias con env=dev y app=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"
        }
      }
    ]
  }
}

Combina filtros de instancia

Los filtros de instancia también se pueden combinar. Por ejemplo, a fin de ejecutar un trabajo de aplicación de parches para instancias que tienen el prefijo test-, están ubicadas en la zona us-east1-c y tienen las etiquetas env=dev y app=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 de parches

Cuando ejecutas un trabajo de aplicación de parches, puedes especificar parámetros para controlar los parches que se aplican en la VM. Los parámetros de configuración de parches dependen de la plataforma y, a menudo, se pasan a las herramientas de actualización del sistema subyacentes. Los parches reales provienen de los repositorios de paquetes (Linux) o del servidor de Windows Update (Windows) que está configurado en la VM.

Puedes especificar las siguientes opciones de configuración de parches para tus VM:

  • Para Windows, especifica la clasificación de los parches que se aplicarán (p. ej., Security y Critical), o bien orienta KB específicos a fin de excluirlos. Para obtener más información sobre la clasificación de parches, consulta la documentación de asistencia de Microsoft.
  • Para RHEL, Rocky Linux y CentOS, el sistema subyacente es yum.

    • Para los parches que se orientan a las VM de RHEL y Rocky Linux, puedes especificar paquetes security y minimal.
    • Para las VM de CentOS, no hay metadatos security en el repositorio yum de CentOS. Por lo tanto, no necesitas especificar la opción security cuando actualizas los paquetes de seguridad. Si no especificas ningún paquete, el trabajo de aplicación de parches actualiza todos los paquetes, incluidos los que tienen actualizaciones de seguridad.
    • También puedes excluir paquetes específicos. Para obtener más información, consulta las páginas man de yum.
  • Para Debian y Ubuntu, el sistema subyacente es apt. Para los parches que se orientan a estas VM, puedes especificar dist-upgrade o una actualización estándar. También puedes excluir paquetes específicos. Para obtener más información, consulta las páginas man de Debian o las páginas man de Ubuntu.

  • Para SuSE, el sistema subyacente es zypper, en particular cuando se usan parches Zipper. Para los parches que se orientan a estas VM, puedes especificar opciones como las siguientes:

    • with update: Actualiza todos los paquetes que no cubren los parches.
    • with optional: Los parches opcionales se tratan como necesarios.
    • Las categorías o la gravedad de los parches que se deben aplicar.

    También puedes excluir parches específicos.

De forma opcional, para todos los sistemas operativos compatibles, puedes especificar la instalación de parches aprobados solo si especificas estas actualizaciones. Esto te permite ingresar una lista de parches o paquetes aprobados. Cuando seleccionas estos parches aprobados, solo se instalan los paquetes o parches aprobados. Todos los demás parámetros de configuración de parches se omiten durante la actualización.

Ejemplos

Consola

  1. Sigue los pasos descritos en la pestaña de la consola para crear un trabajo de aplicación de parche o una implementación de parche.
  2. En la sección Configuración del parche, elige los parámetros para tu trabajo de aplicación de parches.
  3. Realiza los ajustes de configuración adicionales que hagan falta para tu trabajo de aplicación de parche o implementación.
  4. Haz clic en Implementar.

gcloud

Por ejemplo, a fin de ejecutar un trabajo de aplicación de parches en todas las instancias de la zona northamerica-northeast1-a con opciones de configuración de parches específicas para diferentes sistemas operativos, ejecuta el comando gcloud 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 compatibles, ejecuta el siguiente comando:

gcloud compute os-config patch-jobs execute --help

REST

Por ejemplo, a fin de ejecutar un trabajo de aplicación de parches en todas las instancias de la zona northamerica-northeast1-a con opciones de configuración 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 compatibles, consulta la documentación de PatchConfig API.

Período de mantenimiento

Un período de mantenimiento es la cantidad total de tiempo que permites que se ejecute un trabajo de aplicación de parches. Los trabajos de aplicación de parches agotarán el tiempo de espera si no se completan dentro del período de mantenimiento especificado.

Por ejemplo, si configuras un período de mantenimiento de 60 minutes, no se iniciarán nuevos trabajos de aplicación de parches 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 período de mantenimiento. Sin embargo, no se iniciarán trabajo de aplicación de parches nuevos.

Opciones de reinicio

Cuando ejecutas un trabajo de aplicación de parches, puedes especificar las opciones de reinicio del parche. Las siguientes opciones están disponibles:

  • Predeterminado: el agente decide si es necesario el reinicio; para ello, verifica las señales conocidas en cada SO. Es posible que se produzcan varios reinicios durante la aplicación de parches y que se realicen antes de que se instale cualquier parche.
  • Siempre: la máquina se reinicia después de que se completa la actualización.
  • Nunca: la máquina no se reinicia después de que se completa la actualización. En algunos casos, esto puede significar que no todos los parches se aplican por completo.

Secuencias de comandos para antes y después de la aplicación de parches

Cuando ejecutas un trabajo de aplicación de parches, puedes especificar secuencias de comandos para que se ejecuten como parte del proceso. Estas secuencias de comandos son útiles para realizar tareas como cerrar una aplicación y realizar verificaciones de estado.

  • Las secuencias de comandos previas a la aplicación de parches se ejecutan antes de que comience el proceso. Si es necesario reiniciar el sistema antes de comenzar a instalar el parche, esta secuencia de comandos se ejecuta antes del reinicio.
  • Las secuencias de comandos posteriores a la aplicación de parches se ejecutan una vez que finaliza el proceso. Si es necesario reiniciar el sistema como parte de la instalación del parche, esta secuencia de comandos se ejecuta después del reinicio.

Cada trabajo de aplicación de parche puede tener una secuencia de comandos previa y una posterior para Linux y una secuencia de comandos previa y una posterior para Windows. Las secuencias de comandos de Linux y Windows deben proporcionarse mediante las marcas, los parámetros o las secciones correspondientes cuando se especifica desde Google Cloud CLI, REST o La consola de Google Cloud, respectivamente Las secuencias de comandos de Linux solo se ejecutan en las VM de Linux y las secuencias de comandos de Windows solo se ejecutan en las VM de Windows.

Estos archivos de secuencias de comandos se pueden almacenar en la VM o en un depósito de Cloud Storage con control de versiones. Si tu objeto de Cloud Storage no es de lectura pública, asegúrate de que la cuenta de servicio predeterminada de Compute Engine para el proyecto de Google Cloud tenga los permisos de IAM necesarios para leer objetos de Cloud Storage. Para asegurarte de contar con los permisos correctos, revisa la configuración de permisos del objeto de Cloud Storage.

Si quieres usar un depósito de Cloud Storage para almacenar tus secuencias de comandos, crea uno y sube tus secuencias de comandos allí.

Ejemplos

Consola

  1. Sigue los pasos descritos en la pestaña de la consola para crear un trabajo de aplicación de parche o una implementación de parche.
  2. En la sección Opciones avanzadas, haz clic en Explorar para ver las secciones previa y posterior al parche. Aparecerá una página de objetos de Cloud Storage.
  3. En la página del objeto de Cloud Storage, elige el bucket que contiene la secuencia de comandos y elige el objeto o archivo de Cloud Storage.
  4. Realiza los ajustes de configuración adicionales que hagan falta para tu trabajo de aplicación de parche o implementación.
  5. Haz clic en Implementar.

gcloud

Por ejemplo, si quisieras ejecutar un trabajo de aplicación de parche en todas las instancias de la zona northamerica-northeast1-a con secuencias de comandos para antes y después de aplicar el parche en Linux y Windows, tendrías que ejecutar 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 aceptables, ejecuta el siguiente comando:

gcloud compute os-config patch-jobs execute --help

REST

Por ejemplo, si quisieras ejecutar un trabajo de aplicación de parche en todas las instancias de la zona northamerica-northeast1-a con secuencias de comandos para antes y después de aplicar el parche en Linux y Windows, tendrías que ejecutar 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 aceptables, consulta la sección ExecStepConfig de la documentación de la API de PatchConfig.

Opciones de lanzamiento de parches

Puedes elegir aplicar parches a las VM de a una zona a la vez (zona por zona) o aplicar parches a todas las zonas a la vez (zonas simultáneas).

Además de realizar una selección para el lanzamiento de la zona, también puedes especificar un presupuesto de interrupción de zona para tus VM.

Presupuesto de interrupción de zona

Un presupuesto de interrupción es la cantidad máxima (o el porcentaje) de VM por zona que se interrumpen en un momento determinado.

¿Qué se considera una VM interrumpida?

Durante la aplicación de parches, se considera que una VM se interrumpe desde el momento en que el agente de configuración del SO recibe una notificación para comenzar hasta que se complete la aplicación de parches. El tiempo de interrupción incluye el tiempo para completar el reinicio y cualquier paso posterior a la aplicación del parche.

Una VM también se cuenta como parte del presupuesto de interrupción si cumple con alguna de las siguientes condiciones:

  • La operación de aplicación de parches falla cuando se aplican los parches.
  • La operación de aplicación de parches falla cuando se ejecutan pasos previos o posteriores a la aplicación de parches.
  • La operación de aplicación de parches 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 los lanzamientos zona por zona, si se excede el presupuesto de interrupción en una zona, se detiene el trabajo de aplicación de parches. Esto sucede porque, para continuar a la siguiente zona, es necesario que se complete el proceso de aplicación de parches en la zona anterior.

Por ejemplo, si el presupuesto de interrupción tiene un valor de 10 y 8 VM no pueden aplicar parches en la zona actual, el trabajo de aplicación de parches continúa en 2 VM a la vez hasta que se completa la zona. Cuando esa zona se completa de forma correcta, la aplicación de parches comienza con 10 VM a la vez en la siguiente zona. Si no se aplican parches en las 10 VM de la siguiente zona, el trabajo de aplicación de parches se detiene.

Ejemplos

Consola

  1. Sigue los pasos descritos en la pestaña de la consola para crear un trabajo de aplicación de parche o una implementación de parche.
  2. En la sección Patch rollout options, configura las opciones de lanzamiento:
    • Elige si deseas aplicar parches en una zona por vez o en varias zonas de forma simultánea.
    • Establece el presupuesto de interrupción. Un presupuesto de interrupción es la cantidad o el porcentaje de VM en la zona que deseas que el proceso de aplicación de parches interrumpa al mismo tiempo.
  3. Realiza los ajustes de configuración adicionales que hagan falta para tu trabajo de aplicación de parche o implementación.
  4. Haz clic en Implementar.

gcloud

Ejemplo 1

En este ejemplo, se muestra el comando os-config patch-jobs execute para ejecutar un trabajo de aplicación de parches con las siguientes especificaciones:

  • Aplicar parches a todas las VM de tu proyecto
  • Aplicar parches a las VM zona por zona
  • Garantizar que no se interrumpan más de 10 VM en la misma zona en un momento determinado
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 aplicación de parches con las siguientes especificaciones:

  • Aplicar parches a todas las VM de tu proyecto
  • Aplicar parches a zonas de forma simultánea
  • Garantizar que no se interrumpa más del 50% de las VM en la misma zona en un momento determinado
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 aplicación de parches con las siguientes especificaciones:

  • Aplicar parches a todas las VM en las zonas us-central1-a, us-central1-c y us-central1-f
  • Aplicar parches a zonas de forma simultánea
  • Garantizar que no se interrumpa más del 25% de las instancias en la misma zona en un momento determinado
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 de PatchRollout.

Habilita la aplicación de parches de software de Microsoft en las VMs de Windows

Cuando ejecutas un trabajo de aplicación de parches en las VMs de Windows, de forma predeterminada, la plataforma solo aplica los parches para el sistema operativo Windows.

Puedes aplicar actualizaciones para el software de Microsoft, como Microsoft SQL Server, SharePoint Server o el marco de trabajo .NET que se ejecuta en tus VM de Windows cuando ejecutas un trabajo de aplicación de parches. De forma predeterminada, la aplicación de parches a estas aplicaciones está inhabilitada para evitar la interrupción del servicio y separar las actualizaciones planificadas de este software. Para habilitar la aplicación de parches del software de Microsoft de forma automática, puedes usar la IU de Windows o PowerShell.

IU de Windows

  1. En el menú Inicio de Windows, elige Configuración > Actualización y seguridad > Windows Update.
  2. En la sección Opciones avanzadas, activa Recibir actualizaciones de otros productos de Microsoft cuando actualices Windows.

PowerShell

 $service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager'
 $service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")

Depura un trabajo de aplicación de parche

Si el trabajo de aplicación de parche falla, puedes seguir estos pasos para encontrar y resolver los problemas.

  1. Revisa los detalles de la instancia del trabajo de aplicación de parche afectado. Esto te ayuda a identificar qué instancias fallaron o en qué estado se encuentran. La lista de detalles de la instancia también contiene un breve mensaje de error para cada instancia.

    Si un parche falla con el estado NO_AGENT_DETECTED o TIMED_OUT, normalmente significa que el servicio envió una solicitud al agente para comenzar a aplicar el parche, pero el agente nunca respondió. Revisa las siguientes posibles causas y correcciones:

    • La instancia no se está ejecutando. Para solucionarlo, inicia la instancia de VM.
    • Verifica la configuración mediante la lista de tareas de verificación.
    • La configuración de red en la red de VPC o en la instancia no permitió que el agente de configuración del SO se comunicara con la API de configuración del SO. Para solucionar este problema, verifica la configuración de red.
  2. Si los detalles de la instancia no proporcionan suficiente información, revisa los registros de Cloud Logging o la consola del puerto en serie. El agente de configuración del SO escribe sus entradas de registro en ambas ubicaciones. En Cloud Logging, puedes filtrar según el ID del trabajo de aplicación de parche para ver todas las entradas de registro relacionadas. También puedes habilitar el registro de depuración mediante la configuración del valor de metadatos osconfig-log-level=debug a nivel de la VM o de proyecto de Google Cloud.

Próximos pasos