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" oder Month 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.