Planifier des jobs d'application de correctifs


En plus d'exécuter des job d'application de correctifs à la demande, vous souhaiterez peut-être créer un déploiement de correctifs pour que vos jobs s'exécutent automatiquement selon une programmation définie.

Chaque déploiement de correctifs peut être associé à une programmation ponctuelle, qui exécute un job d'application de correctifs à une date et une heure spécifiques, ou à une programmation récurrente, qui exécute un job d'application de correctifs à un intervalle spécifié.

Les filtres d'instances vous permettent de corriger plusieurs instances simultanément. Ces filtres sont appliqués à chaque job d'application de correctifs individuel au moment de son exécution. Ainsi, les modifications apportées à votre projet sont enregistrées en temps réel. Par exemple, imaginons qu'un déploiement de correctifs soit créé afin de corriger toutes les instances de la zone asia-souteast1-b dans deux semaines. Au moment de la création du correctif, 20 instances se trouvaient dans la zone, mais 40 nouvelles instances ont été ajoutées à la zone quelques jours plus tard. Comme le filtre est appliqué au démarrage du correctif, les 60 instances sont mises à jour. Cette méthode vous permet d'ajouter et de supprimer des instances sans avoir à mettre à jour la programmation du déploiement de correctifs.

Avant de commencer

  • Consultez les quotas d'OS Config.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Vous pouvez programmer vos tâches d'application de correctifs à l'aide de la console Google Cloud, de Google Cloud CLI ou de REST.

Autorisations

Les propriétaires d'un projet disposent d'un accès complet pour créer et gérer des déploiements de correctifs. Pour tous les autres utilisateurs, vous devez accorder des autorisations. Vous pouvez attribuer l'un des rôles suivants :

  • roles/osconfig.patchDeploymentAdmin : contient les autorisations nécessaires pour créer, supprimer, obtenir et répertorier les déploiements de correctifs.
  • roles/osconfig.patchDeploymentViewer : contient des autorisations d'accès en lecture seule pour obtenir et répertorier les déploiements de correctifs.

Par exemple, pour accorder à un utilisateur un accès administrateur aux déploiements de correctifs, exécutez la commande suivante :

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

Remplacez l'élément suivant :

  • project-id : ID du projet
  • user-id : nom d'utilisateur Google Workspace de l'utilisateur

Créer un déploiement de correctifs

Lorsque vous créez un déploiement de correctifs, le nom du déploiement doit suivre les règles de dénomination suivantes :

  • Chaque nom doit être unique dans un projet.
  • Le nom ne doit contenir que des lettres minuscules, des chiffres et des traits d'union.
  • Le nom doit commencer par une lettre.
  • Le nom doit se terminer par un chiffre ou une lettre.
  • Le nom doit comporter entre 1 et 63 caractères.

Dans Google Cloud CLI et REST, le nom du déploiement de correctifs est appelé patch-deployment-id.

Après avoir démarré un déploiement de correctif, vous pouvez surveiller vos correctifs via le tableau de bord Patch. Une fois un job d'application de correctifs lancé, les données mettent environ 30 minutes à apparaître dans le tableau de bord.

Console

  1. Dans la console Google Cloud, accédez à la page Compute Engine > VM Manager > Patch.

    Accéder à la page "Patch"

  2. Cliquez sur Nouveau déploiement de correctifs.
  3. Dans la section VM cibles, sélectionnez la zone contenant les VM auxquelles vous souhaitez appliquer des correctifs. Vous pouvez également choisir de sélectionner toutes les zones.

    Par exemple, pour corriger des VM spécifiques dans les zones sélectionnées, saisissez les filtres de nom et de libellé comme suit :

    • Name Prefix (Préfixe de nom) : test-
    • Labels (Libellés) : env=dev et app=web
  4. Dans la section Configuration de correctifs, configurez le correctif.

    1. Indiquez un nom pour votre correctif.
    2. Sélectionnez les mises à jour requises pour votre système d'exploitation. Consultez la section Que contient un job d'application de correctifs de système d'exploitation ? pour en savoir plus.
  5. Dans la section Planification, procédez comme suit :

  6. Dans la section Options de déploiement, configurez les options de déploiement de correctifs :

    • Indiquez si vous souhaitez appliquer un correctif à une zone à la fois ou simultanément dans toutes les zones.
    • Définissez un budget d'interruption. Ce budget correspond au nombre ou au pourcentage de VM que vous souhaitez que le processus d'application de correctifs puisse interrompre simultanément dans une zone.
  7. (Facultatif) Dans la section Options avancées, vous pouvez effectuer les tâches suivantes :

    • Sélectionnez une option de redémarrage.
    • Importez des scripts préliminaires et consécutifs aux correctifs. Pour en savoir plus sur les scripts préliminaires et consécutifs aux correctifs, consultez la section Scripts préliminaires et consécutifs aux correctifs.
  8. Cliquez sur Déployer.

gcloud

Exécutez la commande os-config patch-deployments create pour créer un déploiement de correctifs.

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

Remplacez l'élément suivant :

  • patch-deployment-id : nom du déploiement de correctifs.
  • patch-deployment-file : chemin d'accès au fichier YAML ou JSON contenant les configurations pour le déploiement de correctifs.

Exemples de fichiers YAML de déploiement de correctifs

L'exemple de fichier YAML suivant permet de créer une programmation récurrente pour toutes les instances des zones us-west2-b et us-west2-c. La programmation récurrente présente les spécifications suivantes :

  • Date de début : 9 janvier 2019 à 19h30
  • Date de fin : 9 janvier 2020 à 19h30
  • Fuseau horaire à utiliser : "America/Los_Angeles"
  • Exécution tous les mardis
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'

REST

Dans l'API, effectuez une requête POST pour créer un déploiement de correctifs. Vous devez définir explicitement tous les champs de configuration requis, comme décrit dans la documentation de l'API patchDeployments.create. Par exemple, un déploiement de correctifs qui ne comporte que les champs obligatoires requis (filtre d'instance et programmation) se présente comme suit : Remplacez project-id par l'ID du projet.

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

{
  "instanceFilter": instance-filter

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

Remplacez l'élément suivant :

  • project-id : ID de votre projet
  • instance-filter : paramètres de filtre souhaités. Pour en savoir plus sur les filtres d'instances, consultez la section Filtres d'instances.
  • schedule : fournissez le paramètre oneTimeSchedule ou recurringSchedule qui détaille les paramètres de programmation, tels que la date, l'heure et la fréquence d'exécution du job d'application de correctifs.

Exemples

Exemple 1 : Créez une programmation ponctuelle afin d'exécuter un job d'application de correctifs le 10 janvier 2020 à minuit UTC sur toutes les instances des zones us-west2-b et us-west2-c.

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

Exemple 2 : Créez une programmation récurrente pour toutes les instances des zones us-west2-b et us-west2-c. La programmation récurrente présente les spécifications suivantes :

  • Date de début : 9 janvier 2019 à 19h30
  • Date de fin : 9 janvier 2020 à 19h30
  • Fuseau horaire à utiliser : "America/Los_Angeles"
  • Exécution tous les mardis
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"
  }
}

Répertorier les déploiements de correctifs

Console

  1. Dans la console Google Cloud, accédez à la page Compute Engine > VM Manager > Patch.

    Accéder à la page "Patch"

  2. Sélectionnez l'onglet Déploiements programmés.

gcloud

Exécutez la commande os-config patch-deployments list pour répertorier les déploiements de correctifs.

gcloud compute os-config patch-deployments list

Cette commande renvoie tous les déploiements de correctifs. Le résultat se présente comme suit :

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)

Vous pouvez utiliser davantage d'options pour limiter et formater votre recherche. Par exemple, pour répertorier les 10 premiers déploiements de correctifs sur deux pages, exécutez la commande suivante. Remplacez project-id par l'ID du projet.

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

REST

Dans l'API, envoyez une requête GET à la méthode patchDeployments.list. Remplacez project-id par l'ID du projet.

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

Décrire un déploiement de correctifs

Console

  1. Dans la console Google Cloud, accédez à la page Compute Engine > VM Manager > Patch.

    Accéder à la page "Patch"

  2. Sélectionnez l'onglet Déploiements programmés.
  3. Cliquez sur le nom du déploiement que vous souhaitez examiner.

gcloud

Exécutez la commande os-config patch-deployments describe pour décrire un déploiement de correctifs. Remplacez patch-deployment-id par le nom de votre déploiement de correctifs.

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

REST

Dans l'API, envoyez une requête GET à la méthode patchDeployments.get.

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

Remplacez l'élément suivant :

  • project-id : ID de votre projet.
  • patch-deployment-id : nom du déploiement de correctifs.

Supprimer un déploiement de correctifs

Console

  1. Dans la console Google Cloud, accédez à la page Compute Engine > VM Manager > Patch.

    Accéder à la page "Patch"

  2. Sélectionnez l'onglet Déploiements programmés.
  3. Cliquez sur le nom du déploiement que vous souhaitez supprimer.
  4. Cliquez sur Supprimer cette planification.

gcloud

Exécutez la commande os-config patch-deployments delete pour supprimer un déploiement de correctifs. Remplacez patch-deployment-id par le nom de votre déploiement de correctifs.

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

REST

Dans l'API, envoyez une requête DELETE à la méthode patchDeployments.delete.

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

Remplacez les éléments suivants :

  • project-id : ID de votre projet.
  • patch-deployment-id : nom du déploiement de correctifs.

Étape suivante