Créer des tâches d'application de correctifs


Le service Patch vous permet d'appliquer des correctifs du système d'exploitation sur un groupe d'instances de machines virtuelles (VM).

Pour appliquer des correctifs à vos VM, procédez comme suit :

  1. Configurez votre VM.
  2. Exécutez une tâche de correctif.

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

Limites

  • Vous ne pouvez déployer et exécuter des jobs d'application de correctifs que pour les VM d'un même projet Google Cloud. Vous ne pouvez pas exécuter de jobs d'application de correctifs sur plusieurs projets Google Cloud, même si les VM se trouvent dans un VPC partagé. Cependant, vous pouvez afficher les données de conformité des correctifs pour plusieurs projets.
  • Les limites suivantes s'appliquent lorsque vous appliquez des correctifs aux VM faisant partie d'un groupe d'instances géré (MIG) :
    • Lorsqu'un MIG répare une VM, il recrée la VM en fonction du modèle d'instance. Cela peut rétablir l'état non corrigé de la VM.
    • La correction de VM peut entraîner des résultats inattendus dans un MIG pour lequel l'autoscaling est activé. L'autoscaler supprime les VM corrigées en cas de défaillance de la charge et crée des VM sans correctifs, à l'aide du modèle d'instance du MIG lorsque la charge augmente. Par exemple, si l'utilisation moyenne du processeur est inférieure à l'utilisation cible que vous avez spécifiée pour l'autoscaling, le MIG peut supprimer certaines des VM corrigées lors du scaling vertical.

Systèmes d'exploitation compatibles

Pour obtenir la liste complète des systèmes d'exploitation et des versions compatibles avec Patch, consultez la page Détails des systèmes d'exploitation.

Configurez votre VM.

Procédez comme suit pour utiliser la fonctionnalité Patch :

  1. Pour toutes les VM, configurez VM Manager.
  2. Nous vous recommandons de désactiver les mises à jour automatiques sur les VM Windows. Cette opération limite les conflits entre les mises à jour automatiques de Windows et le service Patch.

Autorisations

Les propriétaires d'un projet Google Cloud disposent d'un accès complet pour exécuter et gérer des tâches d'application de correctifs. Pour tous les autres utilisateurs, vous devez accorder des autorisations. Vous pouvez attribuer l'un des rôles suivants :

  • roles/osconfig.patchJobExecutor : contient les autorisations nécessaires pour exécuter, annuler, obtenir et répertorier les tâches de correctif. Le rôle contient également des autorisations permettant d'afficher les détails de l'instance pour une tâche de correctif.
  • roles/osconfig.patchJobViewer : contient des autorisations d'accès en lecture seule pour obtenir et répertorier les tâches de correctif. Le rôle contient également des autorisations permettant d'afficher les détails de l'instance pour une tâche de correctif.

Par exemple, pour autoriser un utilisateur à exécuter des tâches de correctif, employez la commande suivante :

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

Remplacez l'élément suivant :

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

Exécuter des jobs d'application de correctifs

Vous pouvez exécuter une tâche de correctif à l'aide de Google Cloud Console, de Google Cloud CLI ou de REST.

Lorsque vous exécutez une tâche de correctif, la correction des VM démarre simultanément sur toutes les instances spécifiées par le filtre d'instance.

Après avoir démarré un job d'application de correctifs, 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.

    Après avoir sélectionné les zones, vous pouvez ensuite filtrer les VM qu'elles contiennent.

    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. Pour en savoir plus, consultez la section Configuration des correctifs.
  5. Dans la section Planification, procédez comme suit :

    • Sélectionnez une programmation. Pour exécuter la tâche d'application de correctifs immédiatement, sélectionnez Commencer.
    • Facultatif : Définissez une durée ou un intervalle de maintenance.
  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 :

  8. Cliquez sur Déployer.

gcloud

Utilisez la commande os-config patch-jobs execute pour exécuter une tâche de correctif. Remplacez instance-filter par le filtre d'instance souhaité. Pour en savoir plus sur les filtres d'instances, consultez la section Filtres d'instances.

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

Pour en savoir plus sur les mises à jour appliquées, consultez les éléments inclus dans une tâche de correctif de système d'exploitation. Pour personnaliser vos mises à jour, utilisez les options facultatives.

Exemples

Exemple 1 Pour exécuter une tâche de correctif avec les configurations suivantes :

  • Nom de l'instance : instance-1
  • Zone : us-east1-b
  • Description : patch for instance-1

    Vous devez exécuter la commande suivante :

gcloud compute os-config patch-jobs execute \
    --instance-filter-names="zones/us-east1-b/instances/instance-1" \
    --description "patch for instance-1"

Exemple 2 Supposons que vous souhaitiez exécuter une tâche de correctif de manière asynchrone avec les configurations suivantes :

  • Le correctif doit être exécuté sur toutes les instances du projet.
  • La tâche de correctif doit expirer et s'arrêter au bout d'une heure et 30 minutes.
  • Les machines doivent redémarrer en fonction des paramètres système après l'installation des mises à jour.
  • Sur les VM exécutant Apt, l'application de correctifs s'effectue à l'aide de apt dist-upgrade.
  • Sur les VM exécutant Windows, n'appliquez de correctifs que pour la mise à jour KB4339284.
  • Sur les VM exécutant Yum, l'application de correctifs s'effectue à l'aide de l'utilitaire yum update-minimal --security.

Vous devez exécuter la commande suivante :

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

Dans l'API, créez une requête POST pour exécuter une nouvelle tâche de correctif. Vous devez définir explicitement tous les champs de configuration requis, comme décrit dans la documentation de l'API patchJobs.execute.

Pour en savoir plus sur les mises à jour appliquées, consultez les éléments inclus dans une tâche de correctif de système d'exploitation. Pour personnaliser vos mises à jour, utilisez les paramètres PatchConfig.

Par exemple, une tâche de correctif qui ne comporte que les champs obligatoires se présente comme suit :

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

{
  "instanceFilter": instance-filter
}

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.

Exemples

Exemple 1 Supposons que vous souhaitiez exécuter une tâche de correctif sur une instance nommée instance1 située dans la zone us-east1-b. Dans cet exemple, nous ajoutons une description et spécifions que la tâche s'exécute pendant une heure et 30 minutes. Remplacez project-id par l'ID du projet.

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"
    ]
  }
}

Exemple 2 La tâche de correctif suivante sélectionne les VM avec les configurations suivantes :

  • Les VM associées aux libellés env=dev et app=web
  • Les VM situées dans asia-east1-b ou asia-east1-c
  • Les VM dotées du préfixe test-

Dans la commande suivante, remplacez project-id par l'ID de votre projet :

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"
    ]
  }
}

Exemple 3

Supposons que vous souhaitiez exécuter une tâche de correctif avec les configurations suivantes :

  • Le correctif doit être exécuté sur toutes les instances du projet.
  • La tâche de correctif doit expirer et s'arrêter au bout d'une heure et 30 minutes. Dans l'API, la durée doit être exprimée en secondes. Définissez donc cette valeur sur 5 400 secondes.
  • Les machines doivent redémarrer en fonction des paramètres système après l'installation des mises à jour.
  • Sur les VM exécutant Apt, l'application de correctifs s'effectue à l'aide de apt dist-upgrade.
  • Sur les VM exécutant Windows, n'appliquez de correctifs que pour la mise à jour KB4339284.
  • Sur les VM exécutant Yum, l'application de correctifs s'effectue à l'aide de l'utilitaire yum update-minimal --security.

Vous créez donc la requête suivante :

Dans la commande suivante, remplacez project-id par l'ID de votre projet :

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

Filtres d'instances

Vous pouvez spécifier les instances à inclure dans une tâche de correctif à l'aide de filtres. Les filtres suivants sont compatibles avec les tâches de correctif :

  • Filtrer par nom : limitez la tâche de correctif aux instances portant des noms spécifiques. Les noms d'instances doivent être spécifiés à l'aide de l'URI complet. Les formats d'URI suivants sont compatibles :

    • 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
  • Filtrer par préfixe de nom : limitez la tâche de correctif aux instances dont le nom contient un préfixe spécifique.

  • Filtrer par zone : limitez la tâche de correctif aux instances d'une zone spécifique.

  • Filtrer par libellé : limitez la tâche de correctif aux instances associées à des libellés spécifiques.

Vous pouvez également exécuter des tâches d'application de correctifs sur toutes les instances d'un projet Google Cloud en définissant le champ all dans instanceFilter sur true. Pour en savoir plus, consultez la section Exemples de filtres d'instances.

Exemples de filtres d'instances

Scénario Filtre gcloud Filtre d'API
Toutes les instances d'un projet Google Cloud

--instance-filter-all

{
  "instanceFilter":{
    "all":"true"
  }
}
Instance nommée instance1 située dans la zone us-east1-b

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

{
  "instanceFilter":{
    "instances":[
      "zones/us-east1-b/instances/instance1"
    ]
  }
}
Instances avec le préfixe app-

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

{
  "instanceFilter":{
    "instanceNamePrefixes":[
      "app-"
    ]
  }
}
Instances situées dans les zones us-east1-b ou us-east1-c

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

{
  "instanceFilter":{
    "zones":[
      "us-east1-b",
      "us-east1-c"
    ]
  }
}
Instances associées aux libellés env=dev et app=web, ou aux libellés env=dev et 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"
        }
      }
    ]
  }
}

Combiner des filtres d'instances

Les filtres d'instances peuvent également être combinés. Par exemple, pour exécuter une tâche de correctif sur les instances portant le préfixe test-, situées dans la zone us-east1-c et associées aux libellés env=dev et app=web, exécutez la commande suivante :

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"

Configuration des correctifs

Lorsque vous exécutez une tâche de correctif, vous pouvez spécifier des paramètres pour contrôler les correctifs appliqués à la VM. Les paramètres de configuration des correctifs dépendent de la plate-forme et sont souvent transmis aux outils de mise à jour du système sous-jacent. Les correctifs réels proviennent des dépôts de packages (Linux) ou du serveur Windows Update (Windows) configuré sur la VM.

Vous pouvez spécifier les configurations de correctif suivantes pour vos VM :

  • Pour Windows, vous spécifiez la classification des correctifs à appliquer (par exemple, Security et Critical) ou ciblez des bases de connaissances spécifiques à exclure. Pour en savoir plus sur la classification des correctifs, consultez la documentation d'assistance Microsoft.
  • Pour RHEL, Rocky Linux et CentOS, le système sous-jacent est yum.

    • Pour les correctifs qui ciblent les VM RHEL et Rocky Linux, vous pouvez spécifier les packages security et minimal.
    • Pour les VM CentOS, il n'existe pas de métadonnées security dans le dépôt CentOS yum. Par conséquent, vous n'avez pas besoin de spécifier l'option security lors de la mise à jour des packages de sécurité. Si vous ne spécifiez aucun package, le job d'application de correctifs met à jour tous les packages, y compris ceux avec des mises à jour de sécurité.
    • Vous pouvez également exclure des packages spécifiques. Pour en savoir plus, consultez les pages de manuel concernant yum.
  • Pour Debian et Ubuntu, le système sous-jacent est apt. Pour les correctifs qui ciblent ces VM, vous pouvez spécifier dist-upgrade ou une mise à niveau standard. Vous pouvez également exclure des packages spécifiques. Pour en savoir plus, consultez les pages de manuel concernant Debian ou les pages de manuel concernant Ubuntu.

  • Pour SuSE, le système sous-jacent est zypper. Il utilise en particulier des correctifs zypper. Pour les correctifs qui ciblent ces VM, vous pouvez spécifier des options telles que les suivantes :

    • with update : met à jour tous les packages non couverts par les correctifs
    • with optional : les correctifs facultatifs sont traités si nécessaire
    • Les catégories ou le niveau de gravité des correctifs à appliquer

    Vous pouvez également exclure des correctifs spécifiques.

Pour tous les systèmes d'exploitation compatibles, vous pouvez éventuellement choisir de n'installer que des correctifs approuvés en spécifiant ces mises à jour. Cela vous permet de saisir une liste de packages ou de correctifs approuvés. Lorsque vous sélectionnez ces correctifs approuvés, seuls les packages ou correctifs approuvés sont installés. Tous les autres paramètres de configuration des correctifs sont ignorés lors de la mise à jour.

Examples

Console

  1. Suivez les étapes décrites dans l'onglet de la console pour créer une tâche de correctif ou un déploiement de correctifs.
  2. Dans la section Configuration de correctifs, sélectionnez les paramètres de votre tâche d'application de correctifs.
  3. Effectuez toutes les configurations supplémentaires nécessaires pour votre tâche ou déploiement de correctifs.
  4. Cliquez sur Déployer.

gcloud

Par exemple, pour exécuter une tâche de correctif sur toutes les instances de la zone northamerica-northeast1-a avec des configurations de correctif spécifiques pour différents systèmes d'exploitation, exécutez la commande 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

Pour en savoir plus sur les options acceptées, exécutez la commande suivante :

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

REST

Par exemple, pour exécuter une tâche de correctif sur toutes les instances de la zone northamerica-northeast1-a avec des configurations de correctif spécifiques pour différents systèmes d'exploitation, exécutez la commande suivante :

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

Pour en savoir plus sur les paramètres acceptés, consultez la documentation de PatchConfig API.

Intervalle de maintenance

Un intervalle de maintenance correspond à la durée totale d'exécution d'une tâche d'application de correctifs. Les tâches d'application de correctifs expirent si elles ne se terminent pas dans l'intervalle de maintenance spécifié.

Par exemple, si vous définissez un intervalle de maintenance de 60 minutes, aucune nouvelle tâche d'application de correctifs ne sera lancée pendant les 60 minutes suivant l'heure de début. Certains processus, tels que le téléchargement d'un fichier ou le redémarrage, peuvent se produire en dehors de cet intervalle de maintenance, mais aucune nouvelle tâche d'application de correctifs ne sera lancée.

Options de redémarrage

Lors de l'exécution d'une tâche de correctif, vous pouvez spécifier les options de redémarrage du correctif. Les options suivantes sont disponibles :

  • Par défaut : l'agent décide si un redémarrage est nécessaire en vérifiant les signaux connus sur chaque système d'exploitation. Plusieurs redémarrages peuvent se produire pendant l'application des correctifs et avant leur installation.
  • Toujours : la machine redémarre une fois la mise à jour terminée.
  • Jamais : la machine ne redémarre pas une fois la mise à jour terminée. Dans certains cas, cela peut signifier que tous les correctifs n'ont pas entièrement été appliqués.

Scripts préliminaires et consécutifs aux correctifs

Lorsque vous exécutez une tâche de correctif, vous pouvez spécifier des scripts à exécuter dans le cadre du processus de correction. Ces scripts sont utiles pour effectuer des tâches telles que l'arrêt d'une application et la vérification de l'état.

  • Les scripts préliminaires aux correctifs s'exécutent avant le lancement de l'application de correctifs. Si un redémarrage système est nécessaire avant l'application de correctifs, le script préliminaire s'exécute avant le redémarrage.
  • Les scripts consécutifs aux correctifs s'exécutent une fois l'application des correctifs terminée. Si un redémarrage système est nécessaire dans le cadre de l'application de correctifs, le script consécutif aux correctifs s'exécute après le redémarrage.

Une tâche de correctif accepte un script préliminaire et un script consécutif aux correctifs pour Linux, et un script préliminaire ainsi qu'un script consécutif aux correctifs pour Windows. Les scripts Linux et Windows doivent être fournis à l'aide des options, paramètres ou sections appropriés, qui sont spécifiés respectivement dans Google Cloud CLI, REST ou la console Google Cloud. Les scripts Linux ne s'exécutent que sur des VM Linux, et les scripts Windows que sur des VM Windows.

Ces fichiers de script peuvent être stockés sur la VM ou dans un bucket Cloud Storage avec des versions gérées. Si votre objet Cloud Storage n'est pas lisible publiquement, assurez-vous que le compte de service Compute Engine par défaut du projet Google Cloud dispose des autorisations IAM nécessaires pour lire des objets Cloud Storage. Pour vous assurer que vous disposez bien des autorisations appropriées, consultez les paramètres d'autorisation sur l'objet Cloud Storage.

Si vous souhaitez utiliser un bucket Cloud Storage pour stocker vos scripts, créez un bucket Cloud Storage et importez vos scripts dans le bucket.

Examples

Console

  1. Suivez les étapes décrites dans l'onglet de la console pour créer une tâche de correctif ou un déploiement de correctifs.
  2. Dans la section Options avancées, pour les sections concernant les scripts préliminaires et consécutifs aux correctifs, cliquez sur Parcourir. Une page d'objet Cloud Storage s'affiche.
  3. Sur la page de l'objet Cloud Storage, sélectionnez le bucket Cloud Storage qui contient le script, puis sélectionnez l'objet ou le fichier Cloud Storage.
  4. Effectuez toutes les configurations supplémentaires nécessaires pour votre tâche ou déploiement de correctifs.
  5. Cliquez sur Déployer.

gcloud

Par exemple, pour exécuter une tâche de correctif sur toutes les instances de la zone northamerica-northeast1-a avec un script préliminaire et un script consécutif aux correctifs pour les instances Linux et Windows, exécutez la commande suivante :

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"

Pour en savoir plus sur les formats de fichiers acceptés, exécutez la commande suivante :

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

REST

Par exemple, pour exécuter une tâche de correctif sur toutes les instances de la zone northamerica-northeast1-a avec un script préliminaire et un script consécutif aux correctifs pour les instances Linux et Windows, exécutez la commande suivante :

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

Pour en savoir plus sur les formats de fichiers acceptés, consultez la section ExecStepConfig de la documentation de l'API PatchConfig.

Options de déploiement de correctifs

Vous pouvez choisir d'appliquer des correctifs sur les VM d'une zone à la fois (zone par zone) ou d'appliquer des correctifs simultanément dans toutes les zones.

Outre la sélection de la zone de déploiement, vous pouvez également spécifier un budget d'interruption de zone pour vos VM.

Budget d'interruption de zone

Un budget d'interruption correspond au nombre maximal (ou au pourcentage) de VM par zone à interrompre à un moment donné.

Qu'entend-on par VM interrompue ?

Lors de l'application de correctifs, une VM est considérée comme interrompue depuis le moment où l'agent OS Config est invité à démarrer jusqu'à la fin de l'application de correctifs. Ce temps d'interruption inclut le temps nécessaire au redémarrage et les étapes consécutives aux correctifs.

Une VM est également comptabilisée dans le budget d'interruption si elle remplit l'une des conditions suivantes :

  • L'opération d'application de correctifs échoue lors de son application.
  • L'opération d'application de correctifs échoue lors de l'exécution des étapes préliminaires ou consécutives aux correctifs.
  • L'opération d'application de correctifs ne répond pas avec une notification de réussite avant l'expiration du délai.

Fonctionnement des budgets d'interruption

Pour les déploiements zone par zone, en cas de dépassement du budget d'interruption dans une zone, la tâche d'application de correctifs s'arrête. Cela est dû au fait que le passage à la zone suivante nécessite l'achèvement du processus d'application de correctifs dans la zone précédente.

Par exemple, si le budget de perturbation a une valeur de 10 et que huit VM ne parviennent pas à être corrigées dans la zone actuelle, la tâche d'application de correctifs continue de corriger deux VM à la fois jusqu'à ce que la zone soit terminée. Une fois cette zone terminée, l'application de correctifs commence avec 10 VM à la fois dans la zone suivante. Si l'application de correctifs échoue pour 10 VM de la zone suivante, la tâche s'arrête.

Examples

Console

  1. Suivez les étapes décrites dans l'onglet de la console pour créer une tâche de correctif ou un déploiement de correctifs.
  2. Dans la section Options de déploiement, configurez les options de déploiement :
    • Indiquez si vous souhaitez appliquer un correctif à une zone à la fois ou simultanément dans toutes les zones.
    • Définissez le budget d'interruption. Un budget d'interruption correspond au nombre ou au pourcentage de VM d'une zone que vous souhaitez interrompre simultanément par le processus d'application de correctifs.
  3. Effectuez toutes les configurations supplémentaires nécessaires pour votre tâche d'application de correctifs ou votre déploiement de correctifs.
  4. Cliquez sur Déployer.

gcloud

Exemple 1

Cet exemple montre la commande os-config patch-jobs execute permettant d'exécuter une tâche d'application de correctifs avec les spécifications suivantes :

  • Appliquer des correctifs à toutes les VM de votre projet
  • Appliquer des correctifs aux VM zone par zone
  • S'assurer de ne pas interrompre plus de 10 VM d'une même zone à un moment donné
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=zone-by-zone \
   --rollout-disruption-budget=10

Exemple 2

Cet exemple montre la commande os-config patch-jobs execute permettant d'exécuter une tâche d'application de correctifs avec les spécifications suivantes :

  • Appliquer des correctifs à toutes les VM de votre projet
  • Appliquer des correctifs simultanément dans plusieurs zones
  • S'assurer de ne pas interrompre plus de 50 % des VM d'une même zone à un moment donné
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=concurrent-zones \
   --rollout-disruption-budget-percent=50

REST

Cet exemple montre la méthode patchJobs.execute permettant d'exécuter une tâche d'application de correctifs avec les spécifications suivantes :

  • Appliquer des correctifs à toutes les VM des zones us-central1-a, us-central1-c et us-central1-f
  • Appliquer des correctifs simultanément dans plusieurs zones
  • S'assurer de ne pas interrompre plus de 25 % des VM d'une même zone à un moment donné
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"
  }
}

Pour en savoir plus sur le déploiement des correctifs, consultez la documentation de l'API PatchRollout.

Activer l'application de correctifs aux logiciels Microsoft sur des VM Windows

Lorsque vous exécutez un job d'application de correctifs sur des VM Windows, le service Patch n'applique par défaut que les correctifs concernant le système d'exploitation Windows.

Vous pouvez appliquer des mises à jour aux logiciels Microsoft tels que Microsoft SQL Server, SharePoint Server ou .NET Framework exécutés sur vos VM Windows lorsque vous lancez un job d'application de correctifs. L'application de correctifs sur ces applications est désactivée par défaut, afin d'éviter toute interruption de service et de séparer les mises à jour planifiées de ces logiciels. Pour activer l'application automatique de correctifs aux logiciels Microsoft, vous pouvez utiliser l'interface utilisateur Windows ou PowerShell.

UI Windows

  1. Dans le menu Démarrer de Windows, sélectionnez Paramètres > Mise à jour et sécurité > Windows Update.
  2. Dans la section Options avancées, activez l'option Recevoir les mises à jour d'autres produits Microsoft lorsque vous mettez à jour Windows.

PowerShell

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

Déboguer un job d'application de correctifs

Si votre correctif échoue, vous pouvez suivre les étapes ci-dessous pour identifier et résoudre les problèmes.

  1. Consultez les détails de l'instance pour la tâche de correctif affectée. Cela vous permet d'identifier les instances ayant échoué ou l'état dans lequel elles restent bloquées. La liste des détails de l'instance contient également un bref message d'erreur pour chaque instance.

    Si un correctif échoue avec l'état NO_AGENT_DETECTED ou TIMED_OUT, cela signifie généralement que le service a envoyé une requête à l'agent pour commencer la correction, mais n'a jamais reçu de réponse de l'agent. Voici les causes et les solutions possibles :

    • L'instance n'est pas en cours d'exécution. Pour résoudre ce problème, démarrez l'instance de VM.
    • Vérifiez la configuration à l'aide de la checklist de vérification.
    • Les paramètres réseau du réseau VPC ou de l'instance n'ont pas autorisé l'agent de configuration du système d'exploitation à communiquer avec l'API du service OS Config. Pour résoudre ce problème, vérifiez les paramètres réseau.
  2. Si les détails de l'instance ne fournissent pas suffisamment d'informations, consultez les journaux Cloud Logging ou la console du port série. L'agent OS Config écrit ses entrées de journal aux deux emplacements. Dans Cloud Logging, vous pouvez filtrer les journaux à l'aide de l'ID de tâche de correctif pour afficher toutes les entrées de journal associées à cette tâche. Vous pouvez également activer la journalisation des données de débogage en définissant la valeur de métadonnées osconfig-log-level=debug au niveau de la VM ou du projet Google Cloud.

Étape suivante