Jak programově spravovat aktualizace pro virtuální počítače Azure
Tento článek vás provede procesem použití rozhraní Azure REST API k aktivaci posouzení a nasazení aktualizací na virtuálním počítači Azure pomocí Azure Update Manageru v Azure. Pokud s Update Managerem začínáte a chcete se dozvědět víc, podívejte se na přehled Azure Update Manageru. Pokud chcete ke správě serverů s podporou Arc použít rozhraní Azure REST API, přečtěte si, jak programově pracovat se servery s podporou Arc.
Azure Update Manager v Azure umožňuje programově používat rozhraní Azure REST API pro přístup. Kromě toho můžete použít příslušné příkazy REST z Azure PowerShellu a Azure CLI.
Podpora rozhraní Azure REST API pro správu virtuálních počítačů Azure je dostupná prostřednictvím rozšíření update manageru pro virtuální počítače.
Posouzení aktualizací
Pokud chcete na virtuálním počítači Azure aktivovat posouzení aktualizací, zadejte následující požadavek POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/assessPatches?api-version=2020-12-01`
K zadání požadavku POST můžete použít příkaz Azure CLI az vm assess-patch .
az vm assess-patches -g MyResourceGroup -n MyVm
Nasazení aktualizací
Pokud chcete aktivovat nasazení aktualizace na virtuální počítač Azure, zadejte následující požadavek POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/installPatches?api-version=2020-12-01`
Text požadavku
Následující tabulka popisuje prvky textu požadavku:
Vlastnost | Popis |
---|---|
maximumDuration |
Maximální doba, po kterou se operace spustí. Musí se jednat o řetězec doby trvání vyhovující standardu ISO 8601, například PT4H (4 hodiny). |
rebootSetting |
Příznak do stavu, pokud se má počítač restartovat a pokud instalace aktualizace hostovaného operačního systému vyžaduje dokončení. Přijatelné hodnoty jsou: IfRequired, NeverReboot, AlwaysReboot . |
windowsParameters |
Možnosti parametrů pro aktualizaci hostovaného operačního systému na virtuálních počítačích Azure s podporovaným operačním systémem Microsoft Windows Server |
windowsParameters - classificationsToInclude |
Seznam kategorií/klasifikací, které se mají použít k výběru aktualizací, které se mají nainstalovat na počítač. Přijatelné hodnoty jsou: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Updates |
windowsParameters - kbNumbersToInclude |
Seznam služba Windows Update ID znalostní báze, které by se měly nainstalovat. Nainstalují se všechny aktualizace, které patří do klasifikací uvedených v classificationsToInclude seznamu. kbNumbersToInclude je volitelný seznam konkrétních databází, které se mají nainstalovat kromě klasifikací. Příklad: 1234 |
windowsParameters - kbNumbersToExclude |
Seznam služba Windows Update ID znalostní báze, které by se neměly instalovat. Tento parametr přepíše windowsParameters - classificationsToInclude , což znamená, že zde zadané ID znalostní báze služba Windows Update nebude nainstalováno, ani když patří do klasifikace zadané v parametruclassificationsToInclude . |
maxPatchPublishDate |
Používá se k instalaci oprav publikovaných dne nebo před tímto datem maximálního publikování. |
linuxParameters |
Možnosti parametrů pro aktualizaci hostovaného operačního systému na virtuálních počítačích Azure s podporovaným operačním systémem Linux |
linuxParameters - classificationsToInclude |
Seznam kategorií/klasifikací, které se mají použít k výběru aktualizací, které se mají nainstalovat na počítač. Přijatelné hodnoty jsou: Critical, Security, Other |
linuxParameters - packageNameMasksToInclude |
Seznam linuxových balíčků, které by se měly nainstalovat. Nainstalují se všechny aktualizace, které patří do klasifikací uvedených v classificationsToInclude seznamu. packageNameMasksToInclude je volitelný seznam názvů balíčků, které se mají nainstalovat kromě klasifikací. Příklad: mysql, libc=1.0.1.1, kernel* |
linuxParameters - packageNameMasksToExclude |
Seznam aktualizací, které by se neměly instalovat Tento parametr přepíše linuxParameters - packageNameMasksToExclude , což znamená, že zde zadaný balíček nebude nainstalován, i když patří do klasifikace poskytnuté v parametru classificationsToInclude . |
K zadání požadavku POST můžete použít následující volání rozhraní Azure REST API s platnými parametry a hodnotami.
POST on 'subscriptions/{subscriptionId}/resourceGroups/acmedemo/providers/Microsoft.Compute/virtualMachines/ameacr/installPatches?api-version=2020-12-01
{
"maximumDuration": "PT120M",
"rebootSetting": "IfRequired",
"windowsParameters": {
"classificationsToInclude": [
"Security",
"UpdateRollup",
"FeaturePack",
"ServicePack"
],
"kbNumbersToInclude": [
"11111111111",
"22222222222222"
],
"kbNumbersToExclude": [
"333333333333",
"55555555555"
]
}
}'
Vytvoření plánu konfigurace údržby
Pokud chcete vytvořit plán konfigurace údržby, zadejte následující požadavek PUT:
PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`
Text požadavku
Následující tabulka popisuje prvky textu požadavku:
Vlastnost | Popis |
---|---|
id |
Plně kvalifikovaný identifikátor prostředku |
location |
Získá nebo nastaví umístění prostředku. |
name |
Název prostředku |
properties.extensionProperties |
Získá nebo nastaví rozšířeníProperties údržbyConfiguration |
properties.maintenanceScope |
Získá nebo nastaví maintenanceScope konfigurace. |
properties.maintenanceWindow.duration |
Doba trvání časového období údržby ve formátu HH:MM. Pokud není zadaný, použije se výchozí hodnota na základě zadaného rozsahu údržby. Příklad: 05:00. |
properties.maintenanceWindow.expirationDateTime |
Platné datum vypršení platnosti časového období údržby ve formátu RRRR-MM-DD hh:mm. Okno se vytvoří v časovém pásmu poskytnutém letnímu času podle daného časového pásma. Datum vypršení platnosti musí být nastavené na budoucí datum. Pokud není zadaný, nastaví se na maximální datum a čas 9999-12-31 23:59:59. |
properties.maintenanceWindow.recurEvery |
Míra, za kterou se očekává opakování časového období údržby. Sazba se dá vyjádřit jako denní, týdenní nebo měsíční plány. Denní plány jsou formátované jako recurEvery: [Frequency as integer]['Day(s)]. Pokud není zadána žádná frekvence, výchozí frekvence je 1. Příklady denního plánu jsou recurEvery: Day, recurEvery: 3Days. Týdenní plány jsou formátované jako recurEvery: [Frequency as integer]['Week(s)'] [Optional comma separated list of weekdays monday-sunday]. Příklady týdenního plánu jsou recurEvery: 3Weeks, recurEvery: Week Saturday, Sunday. Měsíční plány jsou formátované jako [Frekvence jako celé číslo]['Month(s)'] [Seznam dní v měsících oddělených čárkami] nebo [Frekvence jako celé číslo][Měsíc(s)'] [Týden v měsících (první, druhý, třetí, čtvrtý, poslední)] [Pondělí-neděle v týdnu]. Příklady měsíčního plánu jsou recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday. |
properties.maintenanceWindow.startDateTime |
Platné datum zahájení časového období údržby ve formátu RRRR-MM-DD hh:mm. Počáteční datum můžete nastavit na aktuální datum nebo budoucí datum. Okno se vytvoří v poskytnutém časovém pásmu a upraví se na letní čas podle daného časového pásma. |
properties.maintenanceWindow.timeZone |
Název časového pásma. Seznam časových pásem lze získat spuštěním příkazu [System.TimeZoneInfo]:GetSystemTimeZones() v PowerShellu. Příklad: Pacific Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Austrálie – standardní čas. |
properties.namespace |
Získá nebo nastaví obor názvů prostředku. |
properties.visibility |
Získá nebo nastaví viditelnost konfigurace. Výchozí hodnota je Custom. |
systemData |
Metadata Azure Resource Manageru obsahující informace createdBy a modifiedBy |
tags |
Získá nebo nastaví značky prostředku. |
type |
Typ prostředku |
K zadání požadavku POST můžete použít následující volání rozhraní Azure REST API s platnými parametry a hodnotami.
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"
]
}
}
}
}'
Přidružení virtuálního počítače k plánu
Pokud chcete virtuální počítač přidružit k plánu konfigurace údržby, zadejte následující požadavek PUT:
PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
K zadání požadavku PUT můžete použít následující volání rozhraní Azure REST API s platnými parametry a hodnotami.
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"
}'
Odebrání počítače z plánu
Pokud chcete počítač z plánu odebrat, získejte všechny názvy přiřazení konfigurace pro počítač, který byl vytvořen pro přidružení počítače k aktuálnímu plánu, z Azure Resource Graphu, jak je uvedeno níže:
maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id
Po získání výše uvedeného názvu odstraňte přiřazení konfigurace podle požadavku DELETE –
DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Další kroky
- Pokud chcete zobrazit protokoly posouzení aktualizací a nasazení vygenerované nástrojem Update Manager, podívejte se na protokoly dotazů.
- Informace o řešení potíží najdete v tématu Řešení potíží s nástrojem Update Manager.