Crear trabajos de parche

Puede utilizar Patch para aplicar parches del sistema operativo en un grupo de instancias de máquinas virtuales (VM).

Para aplicar parches a sus máquinas virtuales, complete los siguientes pasos:

  1. Configure su máquina virtual .
  2. Ejecute un trabajo de parche .

Antes de comenzar

  • Revise las cuotas de configuración del sistema operativo .
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. 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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Limitaciones

  • Puedes implementar y ejecutar trabajos de parches solo para máquinas virtuales en un único proyecto de Google Cloud. No puede ejecutar trabajos de parche en proyectos de Google Cloud, incluso si las máquinas virtuales están en una VPC compartida. Sin embargo, puede ver los datos de cumplimiento de parches en todos los proyectos .
  • De forma predeterminada, VM Manager no aplica parches a ninguna máquina virtual que forme parte de un grupo de instancias administrado (MIG). La aplicación de parches a estas máquinas virtuales se informa como errores en el trabajo de parche. Puede anular este comportamiento predeterminado cuando crea el trabajo de parche. Se aplican las siguientes limitaciones al parchear máquinas virtuales que forman parte de un MIG:
    • Cuando un MIG repara una VM , la recrea según la plantilla de instancia. Esto podría revertir la máquina virtual a un estado sin parches.
    • La aplicación de parches a las máquinas virtuales puede provocar resultados inesperados en un MIG que tiene habilitado el escalado automático. Autoscaler elimina las máquinas virtuales parcheadas cuando la carga disminuye y crea nuevas máquinas virtuales, sin ningún parche, utilizando la plantilla de instancia de MIG cuando la carga aumenta. Por ejemplo, si el uso promedio de la CPU es menor que el uso objetivo que especificó para el escalado automático, MIG puede eliminar algunas de las máquinas virtuales parcheadas durante el escalado horizontal.

Sistemas operativos compatibles

Para obtener la lista completa de sistemas operativos y versiones que admiten parches, consulte Detalles del sistema operativo .

Configura tu máquina virtual

Para utilizar la función Parche, complete los siguientes pasos:

  1. Para todas las máquinas virtuales, configure VM Manager .
  2. Para las máquinas virtuales de Windows, Google recomienda deshabilitar las actualizaciones automáticas en las máquinas virtuales. Esto reduce los conflictos entre las actualizaciones automáticas de Windows y el servicio de parches.

Permisos

Los propietarios de un proyecto de Google Cloud tienen acceso completo para ejecutar y administrar trabajos de parche. Para todos los demás usuarios, debe otorgar permisos. Puede otorgar uno de los siguientes roles granulares:

  • roles/osconfig.patchJobExecutor : contiene permisos para ejecutar, cancelar, obtener y enumerar trabajos 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 otorgar acceso a un usuario para ejecutar trabajos de parche, use el siguiente comando:

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

Reemplace lo siguiente:

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

Ejecutar trabajos de parche

Puede ejecutar una tarea de parche utilizando la consola de Google Cloud , la CLI de Google Cloud o REST .

Cuando ejecuta un trabajo de parche, la aplicación de parches a las máquinas virtuales se inicia simultáneamente en todas las instancias especificadas por el filtro de instancias .

Después de haber iniciado un trabajo de parche, puede monitorear sus parches usando el panel de parches . Se necesitan aproximadamente 30 minutos después de que se inicia un trabajo de parche antes de que los datos se completen en el panel.

Consola

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

    Ir a la página del parche

  2. Haga clic en Implementación de nueva revisión .
  3. En la sección Máquinas virtuales de destino , seleccione la zona que contiene las máquinas virtuales a las que desea aplicar parches. También puede optar por seleccionar todas las zonas.

    Después de seleccionar las zonas, puede filtrar aún más las máquinas virtuales dentro de esa zona.

    Por ejemplo, para parchear máquinas virtuales específicas en las zonas que seleccionó, ingrese el nombre y los filtros de etiqueta similares a los siguientes:

    • Prefijo de nombre: test-
    • Etiquetas: env=dev y app=web
  4. En la sección Configuración de parches , configure el parche.

    1. Especifique un nombre para su parche.
    2. Seleccione las actualizaciones requeridas para su sistema operativo. Para obtener más información, consulte configuración de parches .
  5. En la sección Programación , complete lo siguiente:

  6. En la sección Opciones de implementación , configure las opciones de implementación del parche :

    • Seleccione si desea parchear una zona a la vez o parchear zonas simultáneamente.
    • Establezca un presupuesto para disrupciones. Un presupuesto de interrupción es la cantidad o porcentaje de máquinas virtuales en una zona que desea que se interrumpan al mismo tiempo mediante el proceso de aplicación de parches.
  7. Opcional: en la sección Opciones avanzadas , puede completar las siguientes tareas:

  8. Haga clic en Implementar .

nube de gcloud

Utilice el comando os-config patch-jobs execute para ejecutar un trabajo de parche. Reemplace instance-filter con el filtro de instancia que desee. Para obtener más información sobre los filtros de instancia, consulte filtros de instancia .

gcloud compute os-config patch-jobs execute instance-filter

Para obtener más información sobre qué actualizaciones se aplican, consulte qué se incluye en un trabajo de parche del sistema operativo . Para personalizar sus actualizaciones, use las banderas opcionales .

Ejemplos

Ejemplo 1 Para ejecutar una tarea de parche con las siguientes configuraciones:

  • Nombre de 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 Suponga que desea ejecutar un trabajo de parche de forma asincrónica con las siguientes configuraciones:

  • El parche debe ejecutarse en todas las instancias del proyecto.
  • El trabajo de parche debe expirar 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 máquinas virtuales que ejecutan Apt, la aplicación de parches se realiza mediante apt dist-upgrade .
  • En máquinas virtuales que ejecutan Windows, aplique solo parches para la actualización KB4339284 .
  • En las máquinas virtuales que ejecutan Yum, los parches se realizan utilizando 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

DESCANSAR

En la API, cree una solicitud POST para ejecutar un nuevo trabajo de parche. Debe definir explícitamente todos los campos de configuración requeridos como se describe en la documentación de la API patchJobs.execute .

Para obtener más información sobre qué actualizaciones se aplican, consulte qué se incluye en un trabajo de parche del sistema operativo . Para personalizar sus actualizaciones, utilice los parámetros PatchConfig .

Por ejemplo, un trabajo de parche con solo los campos obligatorios se parece al siguiente.

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

{
  "instanceFilter": instance-filter
}

Reemplace lo siguiente:

  • project-id : el ID de su proyecto.
  • instance-filter : los parámetros de filtro que desea. Para obtener más información sobre los filtros de instancia, consulte filtros de instancia .

Ejemplos

Ejemplo 1 Suponga que desea ejecutar un trabajo de parche en una instancia denominada instance1 ubicada en us-east1-b . En este ejemplo, agregamos una descripción y especificamos que el trabajo se ejecuta durante 1 hora y 30 minutos. Reemplace project-id con su ID de 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 máquinas virtuales que tienen las siguientes configuraciones:

  • Tener etiquetas env=dev y app=web .
  • Están en asia-east1-b o asia-east1-c .
  • Haga que el prefijo test- .

En el siguiente comando, reemplace project-id con su ID de 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

Suponga que desea ejecutar un trabajo de parche con las siguientes configuraciones:

  • El parche debe ejecutarse en todas las instancias del proyecto.
  • El trabajo de parche debe expirar y detenerse después de 1 hora y 30 minutos. La API requiere que el tiempo se exprese en segundos, así que configúrelo como 5400.
  • Las máquinas deben reiniciarse según la configuración del sistema después de instalar las actualizaciones.
  • En las máquinas virtuales que ejecutan Apt, la aplicación de parches se realiza mediante apt dist-upgrade .
  • En máquinas virtuales que ejecutan Windows, aplique solo parches para la actualización KB4339284 .
  • En las máquinas virtuales que ejecutan Yum, los parches se realizan utilizando la utilidad yum update-minimal --security .

Crearía la siguiente solicitud:

En el siguiente comando, reemplace project-id con su ID de 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

Puede especificar las instancias que se incluirán en un trabajo de parche mediante el uso de filtros. Los siguientes filtros son compatibles con los trabajos de parche:

  • Filtrar por nombre: limite el trabajo de parche a instancias con nombres específicos. Los nombres de las instancias se deben especificar utilizando el URI completo. Los formatos de URI admitidos incluyen 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: limite el trabajo de parche a instancias con un prefijo específico en su nombre.

  • Filtrar por zona: limite el trabajo de parche a instancias en una zona específica.

  • Filtrar por etiqueta: limite el trabajo de parche a instancias con etiquetas específicas.

También puedes ejecutar trabajos de parche en todas las instancias de un proyecto de Google Cloud configurando el campo all instanceFilter en true . Para obtener más información, consulte filtros de instancia de ejemplo .

Filtros de instancia de ejemplo

Guión filtro de gcloud filtro API
Todas las instancias en un proyecto de Google Cloud
--instance-filter-all
{
  "instanceFilter":{
    "all":"true"
  }
}
Una instancia con el nombre instance1 que se encuentra en la zona us-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 o us-east1-c
--instance-filter-zones="us-east1-b","us-east1-c"
{
  "instanceFilter":{
    "zones":[
      "us-east1-b",
      "us-east1-c"
    ]
  }
}
Instancias con la etiqueta combinada de env=dev y app=web así como 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"
        }
      }
    ]
  }
}

Combinando filtros de instancia

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

Al ejecutar un trabajo de parche, puede especificar parámetros para controlar los parches que se aplican en la máquina virtual. Los parámetros de configuración del parche dependen de la plataforma y, a menudo, se pasan a las herramientas de actualización del sistema subyacente. Los parches reales provienen de los repositorios de paquetes (Linux) o del servidor de Windows Update (Windows) que está configurado en la VM.

Puede especificar las siguientes configuraciones de parches para sus máquinas virtuales:

  • Para Windows, usted especifica la clasificación de los parches que se aplicarán (por ejemplo, Security y Critical ) o se dirige a KB específicos para excluir. Para obtener más información sobre la clasificación de parches, consulte la documentación de soporte de Microsoft .
  • Para RHEL, Rocky Linux y CentOS, el sistema subyacente es yum .

    • Para los parches dirigidos a máquinas virtuales RHEL y Rocky Linux, puede especificar security y paquetes minimal .
    • Para las máquinas virtuales CentOS, no hay metadatos security en el repositorio yum de CentOS. Por lo tanto, no es necesario especificar la opción security al actualizar los paquetes de seguridad. Si no especifica ningún paquete, el trabajo de parche actualiza todos los paquetes, incluidos aquellos con actualizaciones de seguridad.
    • También puede excluir paquetes específicos. Para obtener más información, consulte las páginas del manual yum .
  • Para Debian y Ubuntu, el sistema subyacente es apt . Para los parches dirigidos a estas máquinas virtuales, puede especificar dist-upgrade o una actualización estándar. También puede excluir paquetes específicos. Para obtener más información, consulte las páginas man de Debian o las páginas man de Ubuntu .

  • Para SuSE, el sistema subyacente es zypper , específicamente usando parches zypper . Para los parches dirigidos a estas máquinas virtuales, puede especificar opciones como:

    • with update : actualiza todos los paquetes no cubiertos por parches
    • with optional : los parches opcionales se tratan según sea necesario
    • Las categorías o severidades de los parches a aplicar.

    También puede excluir parches específicos.

Opcionalmente, para todos los sistemas operativos compatibles, puede seleccionar instalar parches aprobados solo especificando estas actualizaciones. Esto le permite ingresar una lista de paquetes o parches aprobados. Cuando selecciona estos parches aprobados, solo se instalan los paquetes o parches aprobados. Todos los demás parámetros de configuración del parche se omiten durante la actualización.

Ejemplos

Consola

  1. Siga los pasos descritos en la pestaña de la consola para crear un trabajo de parche o una implementación de parche .
  2. En la sección Configuración de parches , seleccione los parámetros para su trabajo de parche.
  3. Realice las configuraciones adicionales que sean necesarias para su trabajo de parche o implementación.
  4. Haga clic en Implementar .

nube de gcloud

Por ejemplo, para ejecutar una tarea de parche en todas las instancias en la zona northamerica-northeast1-a con configuraciones de parche 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 admitidas, ejecute el siguiente comando:

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

DESCANSAR

Por ejemplo, para ejecutar un trabajo de parche en todas las instancias de la zona northamerica-northeast1-a con configuraciones de parche específicas para diferentes sistemas operativos, ejecute 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, revise la documentación PatchConfig API .

Ventana de mantenimiento

Una ventana de mantenimiento es el período total de tiempo que permite que se ejecute un trabajo de parche. Los trabajos de parcheo expirarán si no se completan dentro del período de mantenimiento especificado.

Por ejemplo, si establece una ventana de mantenimiento de 60 minutes , no se iniciarán nuevos trabajos de parche 60 minutos después de la hora de inicio. Algunos procesos, como descargar un archivo o reiniciar, pueden ocurrir fuera de esta ventana de mantenimiento; sin embargo, no se iniciarán nuevos trabajos de parche.

Opciones de reinicio

Al ejecutar un trabajo de parche, puede especificar las opciones de reinicio del parche. Están disponibles las siguientes opciones:

  • Valor predeterminado: el agente decide si es necesario reiniciar comprobando señales conocidas en cada sistema operativo. Es posible que se produzcan varios reinicios durante la aplicación de parches y pueden ocurrir antes de que se instalen los parches.
  • Siempre: la máquina se reinicia una vez completada la actualización.
  • Nunca: la máquina no se reinicia una vez completada la actualización. En algunos casos, esto podría significar que no todos los parches se hayan aplicado por completo.

Scripts previos y posteriores al parche

Al ejecutar un trabajo de parche, puede especificar secuencias de comandos que se ejecutarán como parte del proceso de parcheo. Estos scripts son útiles para realizar tareas como cerrar una aplicación y realizar comprobaciones de estado.

  • Los scripts previos al parche se ejecutan antes de que comience el parche. Si es necesario reiniciar el sistema antes de que comience la aplicación de parches, el script previo al parche se ejecuta antes del reinicio.
  • Los scripts posteriores al parche se ejecutan una vez finalizado el parche. Si es necesario reiniciar el sistema como parte del parche, el script posterior al parche se ejecuta después del reinicio.

Un trabajo de parche acepta un script previo al parche y uno posterior al parche para Linux, y un script previo al parche y uno posterior al parche para Windows. Las secuencias de comandos de Linux y Windows deben proporcionarse utilizando las marcas, parámetros o secciones apropiadas cuando se especifican desde la CLI de Google Cloud , REST o la consola de Google Cloud , respectivamente. Los scripts de Linux se ejecutan únicamente en máquinas virtuales de Linux y los scripts de Windows se ejecutan únicamente en máquinas virtuales de Windows.

Estos archivos de script se pueden almacenar en la VM o en un depósito versionado de Cloud Storage.

Almacenar secuencias de comandos de parches en depósitos de Cloud Storage

Si desea utilizar un depósito de Cloud Storage para almacenar sus secuencias de comandos, cree un depósito de Cloud Storage y cargue sus secuencias de comandos en el depósito. Cuando utilices un depósito de Cloud Storage, considera lo siguiente:

  • Si su objeto de Cloud Storage no es legible públicamente, asegúrese de que la cuenta de servicio adjunta a la instancia tenga los permisos de IAM necesarios para leer los objetos de Cloud Storage. Para asegurarse de tener los permisos correctos, verifique la configuración de permisos en el objeto de Cloud Storage.
  • Cuando seleccionas una secuencia de comandos de Cloud Storage mediante la consola de Google Cloud, se utiliza de forma predeterminada la última versión del objeto de Cloud Storage especificado.
  • Si su organización aplica la restricción de ubicación de recursos , debe almacenar sus scripts en depósitos de Cloud Storage en regiones y zonas que la política de su organización lo permita.

Consola

  1. Siga los pasos descritos en la pestaña de la consola para crear un trabajo de parche o una implementación de parche .
  2. En la sección Opciones avanzadas , tanto para la sección previa como posterior al parche, haga clic en Examinar . Se muestra una página de objetos de Cloud Storage.
  3. En la página del objeto de Cloud Storage, seleccione el depósito de Cloud Storage que contiene el script y luego seleccione el objeto o archivo de Cloud Storage.
  4. Realice las configuraciones adicionales que sean necesarias para su trabajo de parche o implementación.
  5. Haga clic en Implementar .

nube de gcloud

Por ejemplo, para ejecutar un trabajo de parche en todas las instancias en la zona northamerica-northeast1-a con script previo y posterior al parche para instancias de Linux y Windows, ejecute 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, ejecute el siguiente comando:

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

DESCANSAR

Por ejemplo, para ejecutar un trabajo de parche en todas las instancias en la zona northamerica-northeast1-a con script previo y posterior al parche para instancias de Linux y Windows, ejecute 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, revise la sección ExecStepConfig de la documentación de la API PatchConfig .

Opciones de implementación de parches

Puede elegir aplicar parches a las máquinas virtuales 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 despliegue de la zona, también puede especificar un presupuesto de interrupción de zona para sus máquinas virtuales.

Presupuesto de alteración de zona

Un presupuesto de interrupción es el número máximo (o porcentaje) de máquinas virtuales por zona que se interrumpirán en un momento dado.

¿Qué se considera una máquina virtual interrumpida?

Durante la aplicación de parches, una máquina virtual se considera interrumpida desde el momento en que se notifica al agente de configuración del sistema operativo que comience hasta que se completa la aplicación de parches. Este tiempo de interrupción incluye el tiempo para completar el reinicio y cualquier paso posterior al parche.

Una máquina virtual también se cuenta como parte del presupuesto de interrupción si cumple alguna de las siguientes condiciones:

  • La operación de parcheo falla al aplicar los parches
  • La operación de parcheo falla al ejecutar los pasos previos o posteriores al parche
  • La operación de parcheo no responde con una notificación de éxito antes de que expire el tiempo de espera

Cómo funcionan los presupuestos para disrupciones

Para implementaciones zona por zona, si se excede el presupuesto de interrupción en una zona, el trabajo de parche se detiene. Esto sucede porque para pasar a 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 máquinas virtuales no se parchean en la zona actual, el trabajo de parche continúa aplicando parches a 2 máquinas virtuales a la vez hasta que se completa la zona. Cuando esa zona se completa con éxito, la aplicación de parches comienza con 10 máquinas virtuales a la vez en la siguiente zona. Si no se aplican los parches a 10 máquinas virtuales de la siguiente zona, el trabajo de parche se detiene.

Ejemplos

Consola

  1. Siga los pasos descritos en la pestaña de la consola para crear un trabajo de parche o una implementación de parche .
  2. En la sección Opciones de implementación , configure las opciones de implementación:
    • Seleccione si desea parchear una zona a la vez o todas las zonas simultáneamente.
    • Establecer el presupuesto de disrupción. Un presupuesto de interrupción es la cantidad o porcentaje de máquinas virtuales en una zona que desea que se interrumpan al mismo tiempo mediante el proceso de aplicación de parches.
  3. Realice las configuraciones adicionales que sean necesarias para su trabajo de parche o implementación.
  4. Haga clic en Implementar .

nube de gcloud

Ejemplo 1

Este ejemplo muestra el comando os-config patch-jobs execute para ejecutar un trabajo de parche con las siguientes especificaciones:

  • Parchear todas las máquinas virtuales de su proyecto
  • Aplicación de parches a las máquinas virtuales zona por zona
  • Garantizar que no se interrumpan más de 10 máquinas virtuales en la misma zona en un momento dado
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=zone-by-zone \
   --rollout-disruption-budget=10

Ejemplo 2

Este ejemplo muestra el comando os-config patch-jobs execute para ejecutar un trabajo de parche con las siguientes especificaciones:

  • Parchear todas las máquinas virtuales de su proyecto
  • Parchar zonas simultáneamente
  • Garantizar que no más del 50 por ciento de las máquinas virtuales en la misma zona se interrumpan en un momento dado
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=concurrent-zones \
   --rollout-disruption-budget-percent=50

DESCANSAR

Este ejemplo muestra el método patchJobs.execute para ejecutar un trabajo de parche con las siguientes especificaciones:

  • Aplicación de parches a todas las máquinas virtuales en las zonas us-central1-a , us-central1-c y us-central1-f
  • Parchar zonas simultáneamente
  • Garantizar que no más del 25 por ciento de las instancias en la misma zona se vean interrumpidas 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 la implementación de parches, revise la documentación de la API PatchRollout .

Habilite la aplicación de parches al software de Microsoft en máquinas virtuales Windows

Cuando ejecuta un trabajo de parche en máquinas virtuales Windows, de forma predeterminada, Patch aplica solo los parches para el sistema operativo Windows.

Puede aplicar actualizaciones para software de Microsoft como Microsoft SQL Server, SharePoint Server o .NET framework que se ejecutan en sus máquinas virtuales Windows cuando ejecuta un trabajo de parche. De forma predeterminada, la aplicación de parches a estas aplicaciones está deshabilitada para evitar la interrupción del servicio y separar las actualizaciones planificadas para este software. Para habilitar la aplicación de parches al software de Microsoft automáticamente, puede utilizar la interfaz de usuario de Windows o PowerShell.

Interfaz de usuario de Windows

  1. En el menú Inicio de Windows , seleccione Configuración > Actualización y seguridad > Actualización de Windows .
  2. En la sección Opciones avanzadas , active Recibir actualizaciones para otros productos de Microsoft cuando actualice Windows .

PowerShell

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

Depurar un trabajo de parche

Si su parche falla, puede seguir los siguientes pasos para ayudar a encontrar y resolver los problemas.

  1. Revise los detalles de la instancia del trabajo de parche afectado. Esto le ayuda a identificar qué instancias fallaron o en qué estado están atascadas. La lista de detalles de la instancia también contiene un breve mensaje de error para cada instancia.

    Si un parche falla con un estado de NO_AGENT_DETECTED o TIMED_OUT , esto generalmente significa que el servicio envió una solicitud al agente para comenzar a parchear pero nunca recibió respuesta del agente. Revise las siguientes posibles causas y soluciones:

    • La instancia no se está ejecutando. Para solucionar este problema, inicie la instancia de VM .
    • Verifique la configuración utilizando la lista de verificación de verificación .
    • La configuración de red en la red VPC o la instancia no permitió que el agente de OS Config se comunicara con la API de OS Config. Para solucionar este problema, verifique la configuración de red.
  2. Si los detalles de la instancia no proporcionan suficiente información, revise los registros de Cloud Logging o la consola del puerto serie . El agente de OS Config escribe sus entradas de registro en ambas ubicaciones. En Cloud Logging, puede filtrar utilizando el ID del trabajo de parche para ver todas las entradas de registro relacionadas con ese trabajo de parche. También puede habilitar el registro de depuración configurando el valor de metadatos osconfig-log-level=debug en el nivel de proyecto de VM o Google Cloud.

¿Qué sigue?