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.