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í. Napří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.
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í. Napří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/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"
        ]
      }
    }
  }
}'

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/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"
}'

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.