Contrôler les mises à jour avec les configurations de maintenance et Azure CLI
S’applique aux : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles ✔️ Groupes identiques uniformes
Vous pouvez utiliser la fonctionnalité Configurations de maintenance pour contrôler quand appliquer des mises à jour de plateforme à diverses ressources Azure. Cet article traite des options de l’interface Azure CLI pour l’utilisation de cette fonctionnalité. Pour obtenir plus d’informations sur les avantages de l’utilisation de Configurations de maintenance, ses limitations et les autres options de gestion, consultez Gestion des mises à jour de plateformes avec Configurations de maintenance.
Important
Des étendues spécifiques prennent en charge certains types de machines et certaines planifications. Veillez à sélectionner l’étendue adaptée à votre machine virtuelle.
Créer une configuration de maintenance
La première étape de création d’une configuration de maintenance consiste à créer un groupe de ressources comme conteneur pour votre configuration. Cet exemple crée un groupe de ressources nommé myMaintenanceRG dans eastus. Si vous avez déjà un groupe de ressources et que vous souhaitez l’utiliser, vous pouvez ignorer cette partie et remplacer le nom du groupe de ressources par le vôtre dans le reste des exemples.
az group create \
--location eastus \
--name myMaintenanceRG
Après votre création du groupe de ressources, utilisez az maintenance configuration create
pour créer une configuration de maintenance.
Hôte
Cet exemple crée une configuration de maintenance nommée myConfig étendue aux machines hôtes, avec une fenêtre planifiée de 5 heures, le quatrième lundi de chaque mois :
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope host \
--location eastus \
--maintenance-window-duration "05:00" \
--maintenance-window-recur-every "Month Fourth Monday" \
--maintenance-window-start-date-time "2020-12-30 08:00" \
--maintenance-window-time-zone "Pacific Standard Time"
L’utilisation de --maintenance-scope host
garantit l’utilisation de la configuration de maintenance pour contrôler les mises à jour de l’infrastructure hôte. Si vous essayez de créer une configuration portant le même nom, mais dans un autre emplacement, vous obtenez une erreur. Les noms de configuration doivent être uniques dans votre groupe de ressources.
Pour vérifier votre création correcte de la configuration de maintenance, vous pouvez interroger configurations de maintenance disponibles en utilisant az maintenance configuration list
:
az maintenance configuration list
--query "[].{Name:name, ID:id}"
--output table
Vous pouvez exprimer une périodicité de maintenance quotidienne, hebdomadaire ou mensuelle. Voici quelques exemples :
- Quotidienne : une valeur
maintenance-window-recur-every
de"Day"
ou"3Days"
. - Hebdomadaire : une valeur
maintenance-window-recur-every
de"3Weeks"
ou"Week Saturday,Sunday"
. - Mensuelle : une valeur
maintenance-window-recur-every
de"Month day23,day24"
,"Month Last Sunday"
ouMonth Fourth Monday
.
Groupes de machines virtuelles identiques
Cet exemple crée une configuration de maintenance nommée myConfig avec l’étendue d’image de système d’exploitation pour des groupes de machines virtuelles identiques avec une fenêtre planifiée de 5 heures, le quatrième lundi de chaque mois :
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope osimage \
--location eastus \
--maintenance-window-duration "05:00" \
--maintenance-window-recur-every "Month Fourth Monday" \
--maintenance-window-start-date-time "2020-12-30 08:00" \
--maintenance-window-time-zone "Pacific Standard Time"
MV invitées
Cet exemple crée une configuration de maintenance nommée myConfig avec, pour étendue, les machines invitées (machines virtuelles et serveurs avec Azure Arc), avec une fenêtre planifiée de 2 heures tous les 20 jours. Découvrez plus d’informations sur les configurations de maintenance sur les machines virtuelles invitées.
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope InGuestPatch \
--location eastus \
--maintenance-window-duration "02:00" \
--maintenance-window-recur-every "20days" \
--maintenance-window-start-date-time "2022-12-30 07:00" \
--maintenance-window-time-zone "Pacific Standard Time" \
--install-patches-linux-parameters package-name-masks-to-exclude="ppt" package-name-masks-to-include="apt" classifications-to-include="Other" \
--install-patches-windows-parameters kb-numbers-to-exclude="KB123456" kb-numbers-to-include="KB123456" classifications-to-include="FeaturePack" \
--reboot-setting "IfRequired" \
--extension-properties InGuestPatchMode="User"
Affecter la configuration
Utilisez az maintenance assignment create
pour affecter la configuration à votre machine.
Machine virtuelle isolée
Appliquez la configuration à une machine virtuelle hôte isolée en utilisant l’ID de la configuration. Spécifier --resource-type virtualMachines
. Fournissez le nom de la machine virtuelle pour --resource-name
, le groupe de ressources de la machine virtuelle pour --resource-group
et l’emplacement de la machine virtuelle pour --location
.
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
Hôte dédié
Pour appliquer une configuration à un hôte dédié, vous devez inclure --resource-type hosts
, --resource-parent-name
avec le nom du groupe hôte et --resource-parent-type hostGroups
.
Le paramètre --resource-id
est l’ID de l’hôte. Vous pouvez utiliser az-vm-host-get-instance-view pour obtenir l’ID de votre hôte dédié.
az maintenance assignment create \
--resource-group myDHResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myDhResourceGroup/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig" \
--location eastus \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
Groupes de machines virtuelles identiques
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
MV invitées
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
Vérifier la configuration
Vous pouvez vérifier l’application correcte de la configuration, ou vérifier la configuration qui est actuellement appliquée, en utilisant az maintenance assignment list
.
Machine virtuelle isolée
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Hôte dédié
az maintenance assignment list \
--resource-group myDHResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups \
--query "[].{ResourceGroup:resourceGroup,configName:name}" \
--output table
Groupes de machines virtuelles identiques
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
MV invitées
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Rechercher les mises à jour en attente
Utilisez az maintenance update list
pour voir s’il existe des mises à jour en attente. Mettez à jour --subscription
pour qu’il soit l’ID de l’abonnement contenant la machine virtuelle.
S’il n’existe aucune mise à jour, la commande retourne un message d’erreur qui contient le texte suivant Resource not found...StatusCode: 404
.
S’il existe des mises à jour, la commande en retourne une uniquement, même lors plusieurs mises à jour sont en attente. Les données de cette mise à jour sont retournées dans un objet :
[
{
"impactDurationInSec": 9,
"impactType": "Freeze",
"maintenanceScope": "Host",
"notBefore": "2020-03-03T07:23:04.905538+00:00",
"resourceId": "/subscriptions/9120c5ff-e78e-4bd0-b29f-75c19cadd078/resourcegroups/DemoRG/providers/Microsoft.Compute/hostGroups/demoHostGroup/hosts/myHost",
"status": "Pending"
}
]
Machine virtuelle isolée
Recherchez les mises à jour en attente pour une machine virtuelle isolée. Dans cet exemple, la sortie est présentée sous forme de tableau pour faciliter la lecture :
az maintenance update list \
--subscription {subscription ID} \
--resource-group myMaintenanceRg \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--output table
Hôte dédié
Recherchez les mises à jour en attente pour un hôte dédié. Dans cet exemple, la sortie est mise en forme en tant que tableau pour faciliter la lecture. Remplacez les valeurs des ressources par les vôtres.
az maintenance update list \
--subscription {subscription ID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parentname myHostGroup \
--resource-parent-type hostGroups \
--output table
Appliquer des mises à jour
Utilisez az maintenance apply update
pour appliquer les mises à jour en attente. En cas de réussite, cette commande renvoie un fichier JSON contenant les détails de la mise à jour. L’application des appels de mise à jour peut prendre jusqu’à 2 heures.
Machine virtuelle isolée
Créez une demande d’application des mises à jour à une machine virtuelle isolée :
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute
Hôte dédié
Appliquez les mises à jour à un hôte dédié :
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
Groupes de machines virtuelles identiques
Appliquez la mise à jour à un groupe identique :
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute
Vérifier l’état de l’application des mises à jour
Vous pouvez vérifier la progression des mises à jour en tirant parti de az maintenance applyupdate get
.
Pour voir les résultats de la dernière mise à jour, utilisez default
comme nom de mise à jour. Vous pouvez également remplacer myUpdateName
par le nom de la mise à jour qui a été retournée lorsque vous avez exécuté az maintenance applyupdate create
.
Status : Completed
ResourceId : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso
LastUpdateTime : 1/1/2020 12:00:00 AM
Id : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso/providers/Microsoft.Maintenance/applyUpdates/default
Name : default
Type : Microsoft.Maintenance/applyUpdates
LastUpdateTime
est l’heure à laquelle la mise à jour s’est terminée, que vous ayez lancé la mise à jour ou que la plateforme l’ait lancée parce que vous n’avez pas utilisé la fenêtre de maintenance automatique. Si une mise à jour n’a jamais été appliquée par le biais de la fonctionnalité Configurations de maintenance, LastUpdateTime
affiche la valeur par défaut.
Machine virtuelle isolée
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Hôte dédié
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Groupes de machines virtuelles identiques
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Supprimer une configuration de maintenance
Utilisez az maintenance configuration delete
pour supprimer une configuration de maintenance. La suppression de la configuration supprime le contrôle de maintenance des ressources associées.
az maintenance configuration delete \
--subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
-resource-group myResourceGroup \
--resource-name myConfig
Étapes suivantes
Pour obtenir plus d’informations, consultez Maintenance des machines virtuelles dans Azure.