Freigeben über


Programmgesteuerte Verwaltung von Updates für Azure Arc-fähige Server

In diesem Artikel wird beschrieben, wie Sie mit der Azure-REST-API eine Bewertung und Updatebereitstellung auf Ihren Azure Arc-fähigen Servern mit Azure Update Manager in Azure auslösen. Wenn Sie mit Azure Update Manager noch nicht vertraut sind und mehr erfahren möchten, lesen Sie die Übersicht über Azure Update Manager. Informationen zur Verwendung der Azure REST-API zum Verwalten virtueller Azure-Computer finden Sie im Artikel zur programmgesteuerten Arbeit mit virtuellen Azure-Computern.

Mit Azure Update Manager können Sie die Azure-REST-API für programmgesteuerten Zugriff verwenden. Darüber hinaus können Sie die entsprechenden REST-Befehle von Azure PowerShell und Azure CLI verwenden.

Unterstützung für die Azure-REST-API zum Verwalten von Azure Arc-fähigen Servern ist über die VM-Erweiterung von Azure Update Manager verfügbar.

Updatebewertung

Um eine Updatebewertung für Azure Arc-fähige Server auszulösen, geben Sie die folgende POST-Anforderung an:

Um die POST-Anforderung anzugeben, können Sie den Azure CLI-Befehl az rest verwenden.

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

Updatebereitstellung

Um eine Updatebereitstellung für Azure Arc-fähige Server auszulösen, geben Sie die folgende POST-Anforderung an:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview`

Anforderungstext

In der folgenden Tabelle werden die Elemente des Anforderungstexts beschrieben:

Eigenschaft BESCHREIBUNG
maximumDuration Die maximal mögliche Dauer in Minuten des Betriebssystemupdatevorgangs. Es muss eine ISO 8601-kompatible Zeichenfolge für die Dauer sein, z. B. PT100M.
rebootSetting Flag, um anzugeben, ob der Computer neu gestartet werden soll. Es gibt an, ob Azure Update Manager (AUM) den Computer im Rahmen des Aktualisierungsauftrags neu starten sollte. Folgenden Wert sind zulässig: IfRequired, NeverReboot, AlwaysReboot.
windowsParameters Parameteroptionen für das Gastbetriebssystemupdate auf Computern, auf denen ein unterstütztes Microsoft Windows Server-Betriebssystem ausgeführt wird.
windowsParameters - classificationsToInclude Liste der Kategorien oder Klassifizierungen von Betriebssystemupdates, die installiert werden sollen sowie vom Windows Server-Betriebssystem unterstützt und bereitgestellt werden. Folgende Werte sind zulässig: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update.
windowsParameters - kbNumbersToInclude Liste der KB-IDs von Windows Update, die für den Computer verfügbar sind und installiert werden müssen. Wenn Sie „classificationsToInclude“ angegeben haben, werden die in dieser Kategorie verfügbaren KBs installiert. „kbNumbersToInclude“ ist eine Option, mit der Sie eine Liste bestimmter KB-IDs angeben können, die über die zu installierenden hinausgehen. Beispiel: 1234
windowsParameters - kbNumbersToExclude Liste der Windows Update-KB-IDs, die für den Computer verfügbar sind und die nicht installiert werden sollten. Wenn Sie „classificationsToInclude“ angegeben haben, werden die in dieser Kategorie verfügbaren KBs installiert. Die Option „kbNumbersToExclude“ stellt eine Liste bestimmter KB-IDs von Updates bereit, die keinesfalls installiert werden sollen. Beispiel: 5678
maxPatchPublishDate Dies wird verwendet, um Patches zu installieren, die am oder vor diesem angegebenen maximalen Veröffentlichungsdatum veröffentlicht wurden.
linuxParameters Parameteroptionen für Gastbetriebssystemupdates, wenn auf dem Computer eine unterstützten Linux-Distribution ausgeführt wird
linuxParameters - classificationsToInclude Liste der Kategorien oder Klassifizierungen von Betriebssystemupdates, die installiert werden sollen, so wie sie vom verwendeten Paket-Manager des Linux-Betriebssystems unterstützt und bereitgestellt werden. Folgenden Wert sind zulässig: Critical, Security, Others. Weitere Informationen finden Sie im Artikel zu Linux-Paket-Manager und Betriebssystemunterstützung.
linuxParameters - packageNameMasksToInclude Liste der Linux-Pakete, die auf dem Computer verfügbar sind und installiert werden müssen. Wenn Sie „classificationsToInclude“ angegeben haben, werden die in dieser Kategorie verfügbaren Pakete installiert. Die Option „packageNameMasksToInclude“ stellt eine Liste bestimmter Pakete bereit, die darüber hinaus installiert werden sollen. Beispiel: mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude Liste der Linux-Pakete, die auf dem Computer verfügbar sind und nicht installiert werden sollen. Wenn Sie „classificationsToInclude“ angegeben haben, werden die in dieser Kategorie verfügbaren Pakete installiert. Die Option „packageNameMasksToExclude“ stellt eine Liste bestimmter Pakete bereit, die keinesfalls installiert werden sollen. Beispiel: mysql, libc=1.0.1.1, kernel*

Um die POST-Anforderung anzugeben, können Sie den Azure CLI-Befehl az rest verwenden.

az rest --method post --url https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/Test/providers/Microsoft.HybridCompute/machines/WIN-8/installPatches?api-version=2020-08-15-preview @body.json

Das Format des Anforderungstexts für Version 2020-08-15 lautet:

{
        "maximumDuration": "PT120M",
        "rebootSetting": "IfRequired",
        "windowsParameters": {
          "classificationsToInclude": [
            "Security",
            "UpdateRollup",
            "FeaturePack",
            "ServicePack"
          ],
          "kbNumbersToInclude": [
            "11111111111",
            "22222222222222"
          ],
          "kbNumbersToExclude": [
            "333333333333",
            "55555555555"
          ]
        }
  }

Erstellen eines Wartungskonfigurationszeitplans

Um einen Wartungskonfigurationsplan zu erstellen, geben Sie die folgende PUT-Anforderung an:

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`

Anforderungstext

In der folgenden Tabelle werden die Elemente des Anforderungstexts beschrieben:

Eigenschaft BESCHREIBUNG
id Vollqualifizierter Bezeichner der Ressource
location Speicherort der Ressource abrufen oder festlegen
name Name der Ressource
properties.extensionProperties „extensionProperties“ von „maintenanceConfiguration“ abrufen oder festlegen
properties.maintenanceScope „maintenanceScope“ der Konfiguration abrufen oder festlegen
properties.maintenanceWindow.duration Dauer des Wartungsfensters im hh:mm-Format. Ohne Angabe wird der Standardwert basierend auf dem angegebenen Wartungsbereich verwendet, z. B. 05:00.
properties.maintenanceWindow.expirationDateTime Effektives Ablaufdatum des Wartungsfensters im JJJJ-MM-TT hh:mm-Format. Das Fenster wird in der angegebenen Zeitzone mit der entsprechenden Sommerzeit dieser Zeitzone erstellt. Sie müssen das Ablaufdatum auf ein Datum in der Zukunft festlegen. Ohne Angabe wird es auf die maximale Datum/Uhrzeit (9999-12-31 23:59:59) festgelegt.
properties.maintenanceWindow.recurEvery Rate, mit der ein Wartungsfenster wiederholt werden soll. Die Rate kann als täglicher, wöchentlicher oder monatlicher Zeitplan ausgedrückt werden. Ein täglicher Zeitplan wird als „recurEvery: [Frequenz als ganze Zahl]['Day(s)']“ formatiert. Wird keine Rate angegeben, wird die Standardrate 1 verwendet. Beispiele für tägliche Zeitpläne sind: recurEvery: Day, recurEvery: 3Days. Wöchentliche Zeitpläne werden als "recurEvery" formatiert: [Häufigkeit als ganze Zahl]['Woche(n)'] [Optionale kommagetrennte Liste der Wochentage Montag-Sonntag]. Beispiel für wöchentliche Zeitpläne sind: recurEvery: 3Weeks, recurEvery: Week Saturday, Sunday. Ein monatlicher Zeitplan wird als „recurEvery: [Frequenz als ganze Zahl]['Month(s)'] [Kommagetrennte Liste von Monatstagen]“ oder „recurEvery: [Frequenz als ganze Zahl]['Month(s)'] [Woche des Monats (First, Second, Third, Fourth, Last)] [Wochentag Monday-Sunday]“ formatiert. Beispiele für monatliche Zeitpläne sind: recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.
properties.maintenanceWindow.startDateTime Effektives Startdatum des Wartungsfensters im JJJJ-MM-TT hh:mm-Format. Sie können das Startdatum entweder auf das aktuelle oder ein zukünftiges Datum festlegen. Das Fenster wird in der angegebenen Zeitzone erstellt und an die entsprechende Sommerzeit dieser Zeitzone angepasst werden.
properties.maintenanceWindow.timeZone Name der Zeitzone. Sie können die Liste der Zeitzonen durch Ausführen von „[System.TimeZoneInfo]::GetSystemTimeZones()“ in PowerShell abrufen. Beispiel: Pacific Normalzeit, UTC, Mitteleuropäische Zeit, Koreanische Normalzeit, Zentralaustralische Normalzeit.
properties.namespace Namespace der Ressource abrufen oder festlegen
properties.visibility Sichtbarkeit der Konfiguration abrufen oder festlegen. Der Standardwert lautet „Custom“.
systemData Azure Resource Manager-Metadaten mit createdBy- und modifiedBy-Informationen.
tags Tags der Ressource abrufen oder festlegen
type Typ der Ressource
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"

Verknüpfen einer VM mit einem Zeitplan

Um eine VM mit einem Wartungskonfigurationsplan zu verknüpfen, geben Sie die folgende PUT-Anforderung an:

PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
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"

Entfernen eines Computers aus dem Zeitplan

Um einen Computer aus dem Zeitplan zu entfernen, gehen Sie wie folgt vor, und rufen Sie aus Azure Resource Graph alle Konfigurationszuweisungsnamen für den Computer ab, die Sie erstellt haben, um den Computer dem aktuellen Zeitplan zuzuordnen:

az maintenance configuration delete \
   --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"

Nächste Schritte

  • Informationen zum Anzeigen von Updatebewertungs- und Bereitstellungsprotokollen, die von Update Manager generiert werden, finden Sie unter Abfrageprotokolle
  • Um Probleme zu beheben, siehe die Problembehandlung im Update Manager
  • PowerShell-Referenzmodul Az.Maintenance