Steuern von Updates mit Wartungskonfigurationen und der Azure CLI
Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen
Sie können das Feature für Wartungskonfigurationen verwenden, um zu steuern, wann Plattformupdates auf verschiedene Azure-Ressourcen angewendet werden. In diesem Artikel werden die Optionen in der Azure CLI für die Verwendung dieses Features behandelt. Weitere Informationen zu den Vorteilen der Verwendung von Wartungskonfigurationen, zu ihren Einschränkungen und zu anderen Verwaltungsoptionen finden Sie unter Verwalten von Plattformupdates mit Wartungskonfigurationen.
Wichtig
Bestimmte Bereiche unterstützen bestimmte Computertypen und -zeitpläne. Achten Sie darauf, den richtigen Bereich für Ihren virtuellen Computer auszuwählen.
Erstellen einer Wartungskonfiguration
Der erste Schritt zur Erstellung einer Wartungskonfiguration ist das Erstellen einer Ressourcengruppe als Container für Ihre Konfiguration. In diesem Beispiel wird eine Ressourcengruppe mit dem Namen myMaintenanceRG in eastus erstellt. Wenn Sie bereits über eine Ressourcengruppe verfügen, die Sie verwenden möchten, können Sie diesen Teil überspringen und den Ressourcengruppennamen in den restlichen Beispielen durch Ihren eigenen ersetzen.
az group create \
--location eastus \
--name myMaintenanceRG
Nachdem Sie die Ressourcengruppe erstellt haben, verwenden Sie den Befehl az maintenance configuration create
, um eine Wartungskonfiguration zu erstellen.
Host
In diesem Beispiel wird eine Wartungskonfiguration mit dem Namen myConfig für Hostcomputer mit einem geplanten Zeitfenster von 5 Stunden am vierten Montag jedes Monats erstellt:
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"
Durch die Verwendung von --maintenance-scope host
wird sichergestellt, dass die Wartungskonfiguration zum Steuern von Updates für die Hostinfrastruktur verwendet wird. Wenn Sie versuchen, eine Konfiguration mit demselben Namen, aber an einem anderen Speicherort zu erstellen, erhalten Sie eine Fehlermeldung. Konfigurationsnamen müssen für Ihre Ressourcengruppe eindeutig sein.
Sie können überprüfen, ob Sie die Wartungskonfiguration erfolgreich erstellt haben, indem Sie die verfügbaren Wartungskonfigurationen mithilfe des Befehls az maintenance configuration list
abfragen:
az maintenance configuration list
--query "[].{Name:name, ID:id}"
--output table
Sie können die Wiederholung der Wartung täglich, wöchentlich oder monatlich ausdrücken. Im Folgenden finden Sie einige Beispiele:
- Täglich: ein
maintenance-window-recur-every
-Wert von"Day"
oder"3Days"
. - Wöchentlich: ein
maintenance-window-recur-every
-Wert von"3Weeks"
oder"Week Saturday,Sunday"
. - Monatlich: ein
maintenance-window-recur-every
-Wert von"Month day23,day24"
oder"Month Last Sunday"
oderMonth Fourth Monday
.
VM-Skalierungsgruppen
In diesem Beispiel wird eine Wartungskonfiguration mit dem Namen myConfig und mit dem Betriebssystemimagebereich für VM-Skalierungsgruppen mit einem geplanten Zeitfenster von 5 Stunden am vierten Montag jedes Monats erstellt:
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"
Gast-VMs
In diesem Beispiel wird eine Wartungskonfiguration mit dem Namen myConfig für Gastcomputer (VMs und Azure Arc-fähige Server) mit einem geplanten Zeitfenster von 2 Stunden alle 20 Tage erstellt. Weitere Informationen zur Wartungskonfiguration auf Gast-VMs.
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"
Zuweisen der Konfiguration
Weisen Sie Ihrem Computer die Konfiguration mithilfe von az maintenance assignment create
zu.
Isolierte VM
Wenden Sie die Konfiguration auf einen isolierten virtuellen Hostcomputer an, indem Sie die ID der Konfiguration verwenden. Geben Sie --resource-type virtualMachines
an. Geben Sie den Namen der VM für --resource-name
, die Ressourcengruppe für die VM für --resource-group
und den Speicherort der VM für --location
an.
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"
Dedicated Host
Wenn Sie eine Konfiguration auf einen dedizierten Host anwenden möchten, müssen Sie --resource-type hosts
, --resource-parent-name
mit dem Namen der Hostgruppe und --resource-parent-type hostGroups
einschließen.
Der --resource-id
-Parameter ist die ID des Hosts. Sie können az-vm-host-get-instance-view verwenden, um die ID Ihres dedizierten Hosts zu erhalten.
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
VM-Skalierungsgruppen
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"
Gast-VMs
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"
Überprüfen der Konfiguration
Sie können mithilfe von az maintenance assignment list
überprüfen, ob die Konfiguration ordnungsgemäß angewendet wurde oder welche Konfiguration zurzeit angewendet wird.
Isolierte VM
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Dedicated Host
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
VM-Skalierungsgruppen
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Gast-VMs
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Prüfen auf ausstehende Updates
Verwenden Sie az maintenance update list
, um zu überprüfen, ob noch Updates ausstehen. Aktualisieren Sie --subscription
, damit dieser zur ID für das Abonnement wird, das die VM enthält.
Wenn keine Updates vorhanden sind, gibt der Befehl eine Fehlermeldung zurück, die folgenden Text enthält: Resource not found...StatusCode: 404
.
Wenn Updates vorhanden sind, gibt der Befehl nur eine zurück, auch wenn mehrere Updates ausstehen. Die Daten für dieses Update werden in einem Objekt zurückgegeben:
[
{
"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"
}
]
Isolierte VM
Überprüfen Sie, ob für eine isolierte VM ausstehende Updates angezeigt werden. In diesem Beispiel ist die Ausgabe zur besseren Lesbarkeit als Tabelle formatiert:
az maintenance update list \
--subscription {subscription ID} \
--resource-group myMaintenanceRg \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--output table
Dedicated Host
Überprüfen Sie, ob für einen dedizierten Host Updates ausstehen. In diesem Beispiel ist die Ausgabe zur besseren Lesbarkeit als Tabelle formatiert. Ersetzen Sie die Werte für die Ressourcen durch Ihre eigenen.
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
Anwenden von Updates
Verwenden Sie az maintenance apply update
, um ausstehende Updates anzuwenden. Bei Erfolg gibt dieser Befehl JSON-Code zurück, der die Details zum Update enthält. Aufrufe zum Anwenden von Updates können bis zu 2 Stunden dauern.
Isolierte VM
Erstellen Sie eine Anforderung, um Updates auf eine isolierte VM anzuwenden.
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute
Dedicated Host
Wenden Sie Updates auf einen dedizierten Host an:
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
VM-Skalierungsgruppen
Anwenden von Updates auf eine Skalierungsgruppe:
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute
Überprüfen Sie den Status für das Anwenden von Updates.
Sie können den Fortschritt der Updates mithilfe von az maintenance applyupdate get
überprüfen.
Verwenden Sie default
als Updatenamen, um Ergebnisse für die letzte Aktualisierung anzuzeigen. Oder ersetzen Sie myUpdateName
durch den Namen des Updates, das zurückgegeben wurde, als Sie az maintenance applyupdate create
ausgeführt haben.
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
ist der Zeitpunkt, zu dem das Update abgeschlossen ist, unabhängig davon, ob Sie das Update oder die Plattform initiiert haben, da Sie das Selbstwartungsfenster nicht verwendet haben. Wenn noch nie über Wartungskonfigurationen ein Update anwendet wurde, zeigt LastUpdateTime
den Standardwert an.
Isolierte VM
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
Dedicated Host
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
VM-Skalierungsgruppen
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
Löschen einer Wartungskonfiguration
Verwenden Sie az maintenance configuration delete
, um eine Wartungskonfiguration zu löschen. Durch das Löschen der Konfiguration wird die Wartungssteuerung aus den zugeordneten Ressourcen entfernt.
az maintenance configuration delete \
--subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
-resource-group myResourceGroup \
--resource-name myConfig
Nächste Schritte
Weitere Informationen finden Sie unter Wartung für virtuelle Computer in Azure.