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 aus 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:

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

Um die POST-Anforderung anzugeben, können Sie den Azure CLI az rest-Befehl 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

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

{
}

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, das angibt, ob Sie den Computer neu starten sollten und ob dies zum Fertigstellen der Installation des Gastbetriebssystemupdates erforderlich ist. Folgende Werte 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 alle classificationsToInclude-Werte angegeben haben, werden die in der Kategorie verfügbaren Wissensdatenbanken installiert. Die Option „kbNumbersToInclude“ stellt eine Liste bestimmter KB-IDs von Updates bereit, die darüber hinaus installiert werden sollen. Beispiel: 1234
windowsParameters - kbNumbersToExclude Liste der KB-IDs von Windows Update, die für den Computer verfügbar sind und nicht installiert werden sollen. Wenn Sie alle classificationsToInclude-Werte angegeben haben, werden die in der Kategorie verfügbaren Wissensdatenbanken 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. Folgende Werte 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 alle classificationsToInclude-Werte angegeben haben, werden die in der 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 alle classificationsToInclude-Werte angegeben haben, werden die in der 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 folgenden Azure REST-API-Aufruf mit gültigen Parametern und Werten verwenden.

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

{
        "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. Wenn nicht angegeben, wird der Standardwert basierend auf dem bereitgestellten 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 den maximalen Zeitpunkt (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. Ein wöchentlicher Zeitplan wird als „recurEvery: [Rate als Ganzzahl]['Week(s)'] [Optionale kommagetrennte Liste der Wochentage Monday-Sunday]“ formatiert. 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.
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

Um die POST-Anforderung anzugeben, können Sie den folgenden Azure REST-API-Aufruf mit gültigen Parametern und Werten verwenden.

PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestAdv2?api-version=2021-09-01-preview

{
  "location": "eastus2euap",
  "properties": {
    "namespace": null,
    "extensionProperties": {
      "InGuestPatchMode" : "User"
    },
    "maintenanceScope": "InGuestPatch",
    "maintenanceWindow": {
      "startDateTime": "2021-08-21 01:18",
      "expirationDateTime": "2221-05-19 03:30",
      "duration": "01:30",
      "timeZone": "India Standard Time",
      "recurEvery": "Day"
    },
    "visibility": "Custom",
    "installPatches": {
      "rebootSetting": "IfRequired",
      "windowsParameters": {
        "classificationsToInclude": [
          "Security",
          "Critical",
          "UpdateRollup"
        ]
      },
      "linuxParameters": {
        "classificationsToInclude": [
          "Other"
        ]
      }
    }
  }
}'

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`

Um die PUT-Anforderung anzugeben, können Sie den folgenden Azure REST-API-Aufruf mit gültigen Parametern und Werten verwenden.

PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview

{
  "properties": {
    "maintenanceConfigurationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestIntermediate2"
  },
  "location": "eastus2euap"
}'

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:

maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id

Nachdem Sie den Namen von oben abgerufen haben, löschen Sie die Konfigurationszuweisung, indem Sie der DELETE-Anforderung folgen.

DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`

Nächste Schritte