Crea trabajos de aplicación de parches

Puedes usar la administración de parches del SO para aplicar parches de sistema operativo a un grupo de instancias de VM.

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

Sistemas operativos compatibles

  • Debian 9
  • Ubuntu 16.04 y 18.04
  • CentOS 6, 7 y 8
  • Red Hat Enterprise Linux (RHEL) 6, 7 y 8
  • Windows Server 2012R2, 2016, 2019 y versiones semestrales 1803 y 1809
  • SUSE Enterprise Linux Server (SLES) 12 y 15, openSUSE Leap 15

Configura la VM

Para usar el servicio Administración de parches de SO, debes configurar la API del servicio de configuración del SO y, luego, instalar el agente de configuración del SO. Para obtener instrucciones detalladas, consulta la sección sobre cómo establecer la configuración del SO.

Permisos

Los propietarios de un proyecto 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 del usuario en G Suite

Ejecuta trabajos de aplicación de parches

Puedes ejecutar un trabajo de aplicación de parche con Google Cloud Console, la herramienta de línea de comandos de gcloud o la API de configuración del SO de Cloud.

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 Administración de parches del SO. Una vez que se inicia un trabajo de aplicación de parche, los datos demoran unos 30 minutos en propagarse al panel.

Console

  1. En Google Cloud Console, ve a la página Administración de parches del SO.

    Ir a la página Administración de parches del SO

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

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

    Por ejemplo, a fin de ejecutar un trabajo de aplicación de parche para las VM ubicadas en asia-east1-c y asia-east2-b y tienen los siguientes filtros:

    • Prefijo del nombre: test-
    • Etiquetas: env=dev y app=web

    Tu selección sería similar a lo siguiente:

    Página Administración de parches de SO con filtros de instancia.

  4. En la sección Configuración del parche, completa estos datos:

    1. Especifica un Nombre para el parche.
    2. Selecciona 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 Patch rollout options, configura las opciones de lanzamiento:

    • Selecciona 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:

    • Selecciona 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 realiza 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 realiza 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=KB4339284 \
    --yum-minimal --yum-security \
    --async

API

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: el ID de tu 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 realiza 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 realiza 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":"KB4339284"
   }
 }
}

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 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

--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 y CentOS, el sistema subyacente es yum. Para los parches que se orientan a estas VM, puedes especificar paquetes security y minimal. También puedes excluir paquetes específicos. Para obtener más información, consulta las páginas de manual 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

Console

  1. Sigue los pasos descritos en la pestaña de la consola para crear un trabajo de aplicación de parches o una implementación de parches.
  2. En la sección Configuración del parche, selecciona los parámetros para tu trabajo de aplicación de parches.

    Configuración de parches del SO que muestra campos de entrada

  3. Realiza los ajustes de configuración adicionales que hagan falta para tu trabajo de aplicación de parches o implementación de parches.

  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

API

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 parches 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 la herramienta de línea de comandos de gcloud, la API de configuración del SO de Cloud o Google Cloud Console 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 del proyecto 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

Console

  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.

    Página Administración de parches de SO que muestra secciones de carga de secuencias de comandos.

  3. En la página del objeto de Cloud Storage, selecciona el depósito que contiene la secuencia de comandos y elige el objeto o el 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

API

Por ejemplo, si quisieras ejecutar un trabajo de aplicación de parches 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

Console

  1. Sigue los pasos descritos en la pestaña de la consola para crear un trabajo de aplicación de parches o una implementación de parches.
  2. En la sección Patch rollout options, configura las opciones de lanzamiento:
    • Selecciona 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 parches 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

API

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.

Depura un trabajo de aplicación de parches

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, 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.
    • El servicio de configuración del SO no está habilitado. Para solucionar este problema, consulta Configura tu VM.
    • El agente de configuración del SO no está instalado o no se está ejecutando en la instancia. Para solucionar este problema, consulta Configura tu VM.
    • La configuración de red de la instancia no permitió que el agente se comunique con el servicio. Comprueba 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 parches 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.

Próximos pasos