Partager via


Gestion par programmation des mises à jour pour les serveurs avec Azure Arc

Cet article vous guide tout au long du processus d’utilisation de l’API REST Azure pour déclencher une évaluation et un déploiement de mise à jour sur vos serveurs avec Azure Arc avec le Gestionnaire de mise à jour Azure dans Azure. Si vous débutez avec le Gestionnaire de mise à jour Azure et que vous souhaitez en savoir plus, consultez Vue d’ensemble du Gestionnaire de mise à jour. Pour utiliser l’API REST Azure pour gérer des machines virtuelles Azure, consultez Guide pratique pour utiliser des machines virtuelles Azure par programmation.

Le Gestionnaire de mise à jour dans Azure vous permet d’utiliser l’API REST Azure pour l’accès par programme. En outre, vous pouvez utiliser les commandes REST appropriées à partir d’Azure PowerShell et d’Azure CLI.

La prise en charge de l’API REST Azure pour gérer les serveurs avec Azure Arc est disponible via l’extension de machine virtuelle du Gestionnaire de mise à jour.

Update assessment (Évaluation des mises à jour)

Pour déclencher une évaluation de mise à jour sur votre serveur avec Azure Arc, spécifiez la requête POST suivante :

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview`
{
}

Pour spécifier la requête POST, vous pouvez utiliser la commande Azure CLI az rest.

az rest --method post --url https://management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview --body @body.json

Le format du corps de la demande pour la version 2020-08-15 est le suivant :

{
}

Déploiement de mises à jour

Pour déclencher un déploiement de mise à jour sur votre serveur avec Azure Arc, spécifiez la requête POST suivante :

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview`

Corps de la demande

Le tableau suivant décrit les éléments du corps de la demande :

Propriété Description
maximumDuration Durée maximale en minutes pendant laquelle l’opération de mise à jour du système d’exploitation peut prendre. Il doit s’agir d’une chaîne de durée conforme à ISO 8601, comme PT100M.
rebootSetting Indicateur déterminant si vous devez redémarrer l’ordinateur et si l’installation de la mise à jour du système d’exploitation invité le nécessite pour son achèvement. Les valeurs acceptables sont : IfRequired, NeverReboot, AlwaysReboot.
windowsParameters Options de paramètre pour la mise à jour du système d’exploitation invité sur les machines exécutant un système d’exploitation Microsoft Windows Server pris en charge.
windowsParameters - classificationsToInclude Liste des catégories ou classifications des mises à jour du système d’exploitation à appliquer, comme pris en charge et fournis par le système d’exploitation Windows Server. Les valeurs acceptables sont : Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update
windowsParameters - kbNumbersToInclude Liste des ID de la base de connaissances Windows Update disponibles pour l’ordinateur et dont vous avez besoin. Si vous avez inclus des « classificationsToInclude », les bases de connaissance disponibles dans la catégorie sont installées. 'kbNumbersToInclude' est une option permettant de fournir la liste des ID de base de connaissances spécifiques sur et au-dessus que vous souhaitez installer. Par exemple : 1234
windowsParameters - kbNumbersToExclude Liste des ID de la base de connaissances Windows Update disponibles pour l’ordinateur et qui ne doivent pas être installés. Si vous avez inclus des « classificationsToInclude », les bases de connaissance disponibles dans la catégorie sont installées. 'kbNumbersToExclude' est une option permettant de fournir la liste des ID de base de connaissances spécifiques que vous ne souhaitez pas installer. Par exemple : 5678
maxPatchPublishDate Il est utilisé pour installer les correctifs publiés à cette date de publication maximale ou avant.
linuxParameters Options de paramètre pour la mise à jour du système d’exploitation invité lorsque la machine exécute une distribution Linux prise en charge
linuxParameters - classificationsToInclude Liste des catégories ou classifications des mises à jour du système d’exploitation à appliquer, comme pris en charge et fournis par le gestionnaire de package du système d’exploitation Linux utilisé. Les valeurs acceptables sont : Critical, Security, Others. Pour plus d’informations, consultez Gestionnaire de package Linux et la prise en charge du système d’exploitation.
linuxParameters - packageNameMasksToInclude Liste des packages Linux disponibles pour la machine et qui doivent être installés. Si vous avez inclus des « classificationsToInclude », les packages disponibles dans la catégorie sont installés. 'packageNameMasksToInclude' est une option permettant de fournir la liste des packages spécifiques sur et au-dessus que vous souhaitez installer. Par exemple : mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude Liste des packages Linux disponibles pour la machine et qui ne doivent pas être installés. Si vous avez inclus des « classificationsToInclude », les packages disponibles dans la catégorie sont installés. 'packageNameMasksToExclude' est une option permettant de fournir la liste des packages spécifiques que vous ne souhaitez pas installer. Par exemple : mysql, libc=1.0.1.1, kernel*

Pour spécifier la requête POST, vous pouvez utiliser l’appel d’API REST Azure suivant avec des paramètres et des valeurs valides.

POST on 'subscriptions/subscriptionI/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview

{
        "maximumDuration": "PT120M",
        "rebootSetting": "IfRequired",
        "windowsParameters": {
          "classificationsToInclude": [
            "Security",
            "UpdateRollup",
            "FeaturePack",
            "ServicePack"
          ],
          "kbNumbersToInclude": [
            "11111111111",
            "22222222222222"
          ],
          "kbNumbersToExclude": [
            "333333333333",
            "55555555555"
          ]
        }
  }'

Créer une planification de configuration de maintenance

Pour créer une planification de configuration de maintenance, spécifiez la requête PUT suivante :

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`

Corps de la demande

Le tableau suivant décrit les éléments du corps de la demande :

Propriété Description
id Identificateur complet de la ressource
location Obtient ou définit l’emplacement de la ressource
name Nom de la ressource
properties.extensionProperties Obtient ou définit extensionProperties de maintenanceConfiguration
properties.maintenanceScope Obtient ou définit maintenanceScope de la configuration
properties.maintenanceWindow.duration Durée de la fenêtre de maintenance au format HH:MM. Si vous n’indiquez rien, la valeur par défaut est utilisée en fonction de l’étendue de maintenance fournie. Exemple : 05:00.
properties.maintenanceWindow.expirationDateTime Date d’expiration effective de la fenêtre de maintenance au format AAAA-MM-JJ hh:mm. La fenêtre est créée dans le fuseau horaire fourni à l’heure d’été en fonction de ce fuseau horaire. Vous devez définir la date d’expiration à une date ultérieure. Si vous ne l’indiquez pas, le paramètre sera défini sur la date/heure maximale, 9999-12-31 23:59:59.
properties.maintenanceWindow.recurEvery Taux auquel une fenêtre de maintenance est censée se répéter. La cadence peut être exprimée sous la forme de planifications quotidiennes, hebdomadaires ou mensuelles. Vous pouvez mettre en forme les planifications quotidiennes en tant que recurEvery : [Fréquence en tant qu’entier]['Day(s)']. Si aucune fréquence n’est fournie, la fréquence par défaut est 1. Voici des exemples de planifications quotidiennes : recurEvery: Day, recurEvery: 3Days. La planification hebdomadaire est mise en forme sous la forme recurEvery : [Frequency as integer][’Week(s)’] [Liste facultative séparée par des virgules des jours de semaine Monday-Sunday]. Voici des exemples de planifications hebdomadaires : recurEvery : 3Weeks, recurEvery : Week Saturday, Sunday. Vous pouvez mettre en forme des planifications mensuelles sous la forme [Fréquence sous forme d’entier][’Month(s)’] [Liste séparée par des virgules de jours de mois] ou [Fréquence sous forme d’entier][’Month(s)’] [Semaine du mois (First, Second, Third, Fourth, Last)] [Jour de la semaine Monday-Sunday]. Voici des exemples de planifications mensuelles : recurEvery: recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23,day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.
properties.maintenanceWindow.startDateTime Date de début effective de la fenêtre de maintenance au format AAAA-MM-JJ hh:mm. Vous pouvez définir la date de début sur la date actuelle ou une date ultérieure. La fenêtre sera créée dans le fuseau horaire fourni et ajustée à l’heure d’été en fonction de ce fuseau horaire.
properties.maintenanceWindow.timeZone Nom du fuseau horaire. Vous pouvez obtenir la liste des fuseaux horaires en exécutant [System.TimeZoneInfo] :GetSystemTimeZones() dans PowerShell. Exemple : Heure standard du Pacifique, UTC, W. Europe Standard Time, Corée Standard Time, Cen. Heure standard d’Australie de l’Est.
properties.namespace Obtient ou définit l’espace de noms de la ressource
properties.visibility Obtient ou définit la visibilité de la configuration. La valeur par défaut est « Custom »
systemData Métadonnées Azure Resource Manager contenant les informations createdBy et modifiedBy.
tags Obtient ou définit les étiquettes de la ressource
type Type de la ressource

Pour spécifier la requête POST, vous pouvez utiliser l’appel d’API REST Azure suivant avec des paramètres et des valeurs valides.

PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestAdv2?api-version=2021-09-01-preview

{
  "location": "eastus2euap",
  "properties": {
    "namespace": null,
    "extensionProperties": {
      "InGuestPatchMode" : "User"
    },
    "maintenanceScope": "InGuestPatch",
    "maintenanceWindow": {
      "startDateTime": "2021-08-21 01:18",
      "expirationDateTime": "2221-05-19 03:30",
      "duration": "01:30",
      "timeZone": "India Standard Time",
      "recurEvery": "Day"
    },
    "visibility": "Custom",
    "installPatches": {
      "rebootSetting": "IfRequired",
      "windowsParameters": {
        "classificationsToInclude": [
          "Security",
          "Critical",
          "UpdateRollup"
        ]
      },
      "linuxParameters": {
        "classificationsToInclude": [
          "Other"
        ]
      }
    }
  }
}'

Associer une machine virtuelle à une planification

Pour associer une machine virtuelle à une planification de configuration de maintenance, spécifiez la requête PUT suivante :

PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`

Pour spécifier la requête PUT, vous pouvez utiliser l’appel d’API REST Azure suivant avec des paramètres et des valeurs valides.

PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview

{
  "properties": {
    "maintenanceConfigurationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestIntermediate2"
  },
  "location": "eastus2euap"
}'

Supprimer l’ordinateur de la planification

Pour supprimer une machine de la planification, obtenez tous les noms d’affectation de configuration de l’ordinateur que vous avez créés pour associer la machine à la planification actuelle à partir d’Azure Resource Graph comme indiqué :

maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id

Après avoir obtenu le nom ci-dessus, supprimez l’affectation de configuration en suivant la demande DELETE -

DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`

Étapes suivantes

  • Pour afficher les journaux d’évaluation et de déploiement des mises à jour générés par le Gestionnaire de mise à jour, consultez les journaux de requête.
  • Pour résoudre les problèmes, consultez la section Résoudre les problèmes du Gestionnaire de mise à jour.