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/0f55bb56-6089-4c7e-9306-41fb78fc5844/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/0f55bb56-6089-4c7e-9306-41fb78fc5844/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview
{
"properties": {
"maintenanceConfigurationId": "/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/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
- Informationen zum Anzeigen von Updatebewertungs- und Bereitstellungsprotokollen, die von Update Manager generiert wurden, finden Sie unter Abfrageprotokolle.
- Informationen zur Problembehandlung finden Sie unter Fehlerbehebung bei Problemen mit Azure Update Manager.