Steuern von Updates mit Wartungskonfigurationen und der Azure CLI

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

Mithilfe von Wartungskonfigurationen können Sie entscheiden, wann Plattformupdates auf verschiedene Azure-Ressourcen angewendet werden. In diesem Thema werden die Azure CLI-Optionen für die Verwendung dieses Diensts behandelt. Weitere Informationen zu den Vorteilen der Verwendung von Wartungskonfigurationen, ihren Einschränkungen und anderen Verwaltungsoptionen finden Sie unter Verwalten von Plattformupdates mit Wartungskonfigurationen.

Wichtig

Es gibt verschiedene Bereiche, die bestimmte Computertypen und Zeitpläne unterstützen. Stellen Sie daher sicher, dass Sie den richtigen Bereich für Ihren virtuellen Computer auswä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 dem gleichen 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 

Hinweis

Die Wiederholung der Wartung kann täglich, wöchentlich oder monatlich ausgedrückt werden. Beispiele:

  • daily- maintenance-window-recur-every: „Day“ oder „3Days“
  • weekly- maintenance-window-recur-every: „3Weeks“ oder „Week Saturday,Sunday“
  • monthly- maintenance-window-recur-every: „Month day23,day24“ oder „Month Last Sunday“ oder „Month Fourth Monday“

Virtual Machine Scale Sets

In diesem Beispiel wird eine Wartungskonfiguration mit dem Namen myConfig und mit dem Bereich „osimage“ 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 Arc-fähige Server) mit einem geplanten Zeitfenster von 2 Stunden alle 20 Tage erstellt. Weitere Informationen zu diesen Wartungskonfigurationen auf Gast-VMs finden Sie unter Gast.

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, und geben Sie den Namen der VM für --resource-name, die Ressourcengruppe für die VM in --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 

Virtual Machine Scale Sets

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

Virtual Machine Scale Sets

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 den Befehl --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, wird nur eines zurückgegeben, auch wenn mehrere Updates ausstehend sind. 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} \
   --resourcegroup myMaintenanceRg \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --output table

Dedicated Host

Überprüfen Sie, ob für einen dedizierten Host ausstehende Updates angezeigt werden. 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} \
   --resourcegroup 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. Das Anwenden von Updateaufrufen kann 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

Virtual Machine Scale Sets

Anwenden eines 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.

Sie können default als Updatenamen verwenden, um die Ergebnisse des letzten Updates anzuzeigen, oder myUpdateName durch den Namen des Updates ersetzen, der beim Ausführen von az maintenance applyupdate create zurückgegeben wurde.

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 die Uhrzeit, zu der das Update vollständig durchgeführt wurde. Dies kann durch Sie initiiert werden oder durch die Plattform, falls das Selbstwartungsfenster nicht genutzt wurde. Wenn noch nie über die Wartungssteuerung ein Update angewandt wurde, wird der Standardwert angezeigt.

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

Virtual Machine Scale Sets

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 und Updates.