Programar trabajos de parche

Además de ejecutar trabajos de parches a pedido , es posible que desee tener trabajos de parches que se ejecuten automáticamente según un cronograma establecido mediante la creación de una implementación de parches.

Cada implementación de parches puede tener una programación única, que ejecuta una tarea de parche en una fecha y hora específicas, o una programación recurrente, que ejecuta una tarea de parche en un intervalo específico.

Los filtros de instancia le permiten parchear simultáneamente muchas instancias al mismo tiempo. Estos filtros se aplican a cada trabajo de parche individual en el momento de su ejecución. Esto garantiza que los cambios en su proyecto se capturen en tiempo real. Por ejemplo, supongamos que se crea una implementación de parches para aplicar parches a todas las instancias en la zona asia-souteast1-b a partir de dos semanas a partir de ahora. En el momento de crear el parche, tenía 20 instancias en la zona, pero unos días después se agregan 40 instancias nuevas a la zona. Debido a que el filtro se aplica en el momento en que se inicia el parche, se actualizan las 60 instancias. Esto le permite agregar y eliminar instancias sin la necesidad de actualizar el cronograma de implementación del 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 .

Puede programar sus trabajos de parche utilizando la consola de Google Cloud , la CLI de Google Cloud o REST .

Permisos

Los propietarios de un proyecto tienen acceso completo para crear y administrar implementaciones de parches. Para todos los demás usuarios, debe otorgar permisos. Puede otorgar uno de los siguientes roles granulares:

  • roles/osconfig.patchDeploymentAdmin : contiene permisos para crear, eliminar, obtener y enumerar implementaciones de parches.
  • roles/osconfig.patchDeploymentViewer : contiene permisos de acceso de solo lectura para obtener y enumerar implementaciones de parches.

Por ejemplo, para otorgar a un usuario acceso de administrador a las implementaciones de parches, ejecute el siguiente comando:

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

Reemplace lo siguiente:

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

Crear una implementación de parches

Cuando crea una implementación de parches, el nombre de la implementación de parches debe cumplir los siguientes requisitos de nomenclatura:

  • Cada nombre debe ser único dentro de un proyecto.
  • Contener sólo letras minúsculas, números y guiones
  • empezar con una letra
  • Terminar con un número o una letra.
  • Tener entre 1 y 63 caracteres

En Google Cloud CLI y REST, el nombre de la implementación del parche se conoce como patch-deployment-id .

Una vez que haya iniciado la implementación de un 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.

    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 lo que se incluye en un trabajo de parche del sistema operativo .
  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-deployments create para crear una implementación de parche.

gcloud compute os-config patch-deployments create patch-deployment-id \
    --file patch-deployment-file

Reemplace lo siguiente:

  • patch-deployment-id : el nombre de la implementación del parche.
  • patch-deployment-file : la ruta al archivo YAML o JSON que contiene las configuraciones para la implementación del parche.

Archivos YAML de implementación de parches de ejemplo

El siguiente archivo YAML de muestra se puede utilizar para crear una programación recurrente para todas las instancias en las zonas us-west2-b y us-west2-c . El cronograma recurrente tiene las siguientes especificaciones:

  • La fecha de inicio es el 09 de enero de 2019 a las 19:30 horas.
  • La fecha de finalización es el 09 de enero de 2020 a las 19:30 horas.
  • La zona horaria a utilizar es "América/Los_Angeles"
  • Se ejecuta todas las semanas un martes.
instanceFilter:
  zones:
  - us-west2-b
  - us-west2-c
recurringSchedule:
  frequency: WEEKLY
  weekly:
    dayOfWeek: TUESDAY
  timeOfDay:
    hours: 19
    minutes: 30
  timeZone:
    id: America/Los_Angeles
  startTime: '2019-09-01T12:00:00Z'
  endTime: '2020-09-01T12:00:00Z'

DESCANSAR

En la API, cree una solicitud POST para crear una nueva implementación de parche. Debe definir explícitamente todos los campos de configuración requeridos como se describe en la documentación de la API patchDeployments.create . Por ejemplo, una implementación de parche con los campos mínimos requeridos (filtro de instancia y programación) se parece a la siguiente. Reemplace project-id con su ID de proyecto.

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

{
  "instanceFilter": instance-filter

  // Add one of the following parameters:
  "recurringSchedule": schedule
  "oneTimeSchedule": schedule
}

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 .
  • schedule : proporcione el parámetro oneTimeSchedule o recurringSchedule que detalla los parámetros de programación, como la fecha, la hora y la frecuencia para ejecutar el trabajo de parche.

Ejemplos

Ejemplo 1 : cree una programación única para ejecutar una tarea de parche el 10 de enero de 2020 a las 12 a. m. UTC en todas las instancias de las zonas us-west2-b y us-west2-c .

{
 "instanceFilter":{
   "zones":[
     "us-west2-b",
     "us-west2-c"
   ]
 },
 "oneTimeSchedule": {
   "executeTime": "2020-01-10T00:00:00Z"
 }
}

Ejemplo 2 : cree una programación recurrente para todas las instancias en las zonas us-west2-b y us-west2-c . El cronograma recurrente tiene las siguientes especificaciones:

  • La fecha de inicio es el 09 de enero de 2019 a las 19:30 horas.
  • La fecha de finalización es el 09 de enero de 2020 a las 19:30 horas.
  • La zona horaria a utilizar es "América/Los_Angeles"
  • Se ejecuta todas las semanas un martes.
POST https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments
{
  "instanceFilter":{
    "zones":[
      "us-west2-b",
      "us-west2-c"
    ]
  },
  "recurringSchedule":{
    "frequency":"WEEKLY",
    "weekly":{
      "dayOfWeek":"TUESDAY"
    },
    "timeOfDay":{
      "hours":19,
      "minutes":30
    },
    "timeZone":{
      "id":"America/Los_Angeles"
    },
    "startTime":"2019-09-01T12:00:00Z",
    "endTime":"2020-09-01T12:00:00Z"
  }
}

Listar implementaciones de parches

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. Seleccione la pestaña Implementaciones programadas .

nube de gcloud

Utilice el comando os-config patch-deployments list para enumerar las implementaciones de parches.

gcloud compute os-config patch-deployments list

Este comando devuelve todas las implementaciones de parches. El resultado es similar al siguiente:

NAME              LAST_RUN                  NEXT_RUN              FREQUENCY
first-deployment  2019-12-18T00:07:00.738Z  ---                   Once: Scheduled for 2019-12-18T00:07:00.000Z
my-deployment1    2020-01-05T14:00:00.228Z  2020-01-12T14:00:00Z  Recurring - Weekly
my-deployment2    ---                       2020-01-15T05:30:00Z  Recurring - Monthly on specific date(s)

Puede utilizar más indicadores para limitar y formatear su búsqueda. Por ejemplo, para enumerar las primeras 10 implementaciones de parches en páginas de 2, ejecute el siguiente comando. Reemplace project-id con su ID de proyecto.

gcloud compute os-config patch-deployments list --limit 10 --page-size 2

DESCANSAR

En la API, cree una solicitud GET para el método patchDeployments.list . Reemplace project-id con su ID de proyecto.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments

Describir una implementación de parche

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. Seleccione la pestaña Implementaciones programadas .
  3. Haga clic en el nombre de la implementación que desea revisar.

nube de gcloud

Utilice el comando os-config patch-deployments describe para describir la implementación de un parche. Reemplace patch-deployment-id con el nombre de su implementación de parche.

gcloud compute os-config patch-deployments describe patch-deployment-id

DESCANSAR

En la API, cree una solicitud GET para el método patchDeployments.get .

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

Reemplace lo siguiente:

  • project-id : el ID de su proyecto.
  • patch-deployment-id : el nombre de implementación del parche.

Eliminar una implementación de parche

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. Seleccione la pestaña Implementaciones programadas .
  3. Haga clic en el nombre de la implementación que desea eliminar.
  4. Haz clic en Eliminar este horario .

nube de gcloud

Utilice el comando os-config patch-deployments delete para eliminar una implementación de parche. Reemplace patch-deployment-id con el nombre de su implementación de parche.

gcloud compute os-config patch-deployments delete patch-deployment-id

DESCANSAR

En la API, cree una solicitud DELETE para el método patchDeployments.delete .

DELETE https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

Reemplace lo siguiente:

  • project-id : el ID de su proyecto.
  • patch-deployment-id : el nombre de implementación del parche.

¿Qué sigue?