Delen via


Updates voor Azure-VM's programmatisch beheren

In dit artikel wordt stapsgewijs uitgelegd hoe u de Azure REST API gebruikt om een evaluatie en een update-implementatie op uw virtuele Azure-machine te activeren met Azure Update Manager in Azure. Zie het overzicht van Azure Update Manager als u niet eerder bij Update Manager bent en u meer wilt weten. Als u de Azure REST API wilt gebruiken om servers met Arc te beheren, raadpleegt u Programmatisch werken met servers met Arc.

Met Azure Update Manager in Azure kunt u de Azure REST API gebruiken voor programmatisch toegang. Daarnaast kunt u de juiste REST-opdrachten van Azure PowerShell en Azure CLI gebruiken.

Ondersteuning voor Azure REST API voor het beheren van Azure-VM's is beschikbaar via de extensie voor virtuele Machines van Update Manager.

Update-evaluatie

Als u een update-evaluatie op uw Azure-VM wilt activeren, geeft u de volgende POST-aanvraag op:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/assessPatches?api-version=2020-12-01`

Als u de POST-aanvraag wilt opgeven, kunt u de opdracht Azure CLI az vm assess-patches gebruiken.

az vm assess-patches -g MyResourceGroup -n MyVm

Update-implementatie

Als u een update-implementatie naar uw Azure-VM wilt activeren, geeft u de volgende POST-aanvraag op:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/installPatches?api-version=2020-12-01`

Aanvraagtekst

In de volgende tabel worden de elementen van de aanvraagbody beschreven:

Eigenschappen Beschrijving
maximumDuration Maximale tijdsduur waarop de bewerking wordt uitgevoerd. Het moet een iso 8601-compatibele duurtekenreeks zijn, zoals PT4H (4 uur).
rebootSetting Vlag om aan te geven of de computer opnieuw moet worden opgestart en als de installatie van de gastbesturingssystemen-update dit vereist voor voltooiing. Acceptabele waarden zijn: IfRequired, NeverReboot, AlwaysReboot.
windowsParameters Parameteropties voor update van gastbesturingssysteem op Azure-VM's waarop een ondersteund Microsoft Windows Server-besturingssysteem wordt uitgevoerd.
windowsParameters - classificationsToInclude Lijst met categorieën/classificaties die moeten worden gebruikt voor het selecteren van de updates die op de computer moeten worden geïnstalleerd. Acceptabele waarden zijn: Critical, Security, UpdateRollUp, FeaturePack, ServicePack, Definition, Tools, Updates
windowsParameters - kbNumbersToInclude Lijst met WINDOWS Update KB-id's die moeten worden geïnstalleerd. Alle updates die behoren tot de classificaties in classificationsToInclude de lijst, worden geïnstalleerd. kbNumbersToInclude is een optionele lijst met specifieke KB's die naast de classificaties moeten worden geïnstalleerd. Bijvoorbeeld: 1234
windowsParameters - kbNumbersToExclude Lijst met KB-id's van Windows Update die niet moeten worden geïnstalleerd. Deze parameter overschrijft windowsParameters - classificationsToInclude, wat betekent dat een Windows Update KB-id die hier is opgegeven, niet wordt geïnstalleerd, zelfs niet als deze deel uitmaakt van de classificatie die is opgegeven onder classificationsToInclude de parameter.
maxPatchPublishDate Dit wordt gebruikt om patches te installeren die zijn gepubliceerd op of vóór deze maximale gepubliceerde datum.
linuxParameters Parameteropties voor het bijwerken van gastbesturingssysteem op Azure-VM's waarop een ondersteund Linux-serverbesturingssysteem wordt uitgevoerd.
linuxParameters - classificationsToInclude Lijst met categorieën/classificaties die moeten worden gebruikt voor het selecteren van de updates die op de computer moeten worden geïnstalleerd. Acceptabele waarden zijn: Critical, Security, Other
linuxParameters - packageNameMasksToInclude Lijst met Linux-pakketten die moeten worden geïnstalleerd. Alle updates die behoren tot de classificaties in classificationsToInclude de lijst, worden geïnstalleerd. packageNameMasksToInclude is een optionele lijst met pakketnamen die naast de classificaties moeten worden geïnstalleerd. Bijvoorbeeld: mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude Lijst met updates die niet moeten worden geïnstalleerd. Deze parameter overschrijft linuxParameters - packageNameMasksToExclude, wat betekent dat een pakket dat hier is opgegeven, niet wordt geïnstalleerd, zelfs niet als deze deel uitmaakt van de classificatie die is opgegeven onder classificationsToInclude de parameter.

Als u de POST-aanvraag wilt opgeven, kunt u de volgende Azure REST API-aanroep gebruiken met geldige parameters en waarden.

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

Een onderhoudsconfiguratieschema maken

Als u een onderhoudsconfiguratieschema wilt maken, geeft u de volgende PUT-aanvraag op:

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

Aanvraagtekst

In de volgende tabel worden de elementen van de aanvraagbody beschreven:

Eigenschappen Beschrijving
id Volledig gekwalificeerde id van de resource
location Hiermee haalt u de locatie van de resource op of stelt u deze in
name Naam van de resource
properties.extensionProperties Hiermee haalt u extensionProperties van de maintenanceConfiguration op of stelt u deze in
properties.maintenanceScope Hiermee haalt u maintenanceScope van de configuratie op of stelt u deze in
properties.maintenanceWindow.duration Duur van het onderhoudsvenster in HH:MM-indeling. Indien niet opgegeven, wordt de standaardwaarde gebruikt op basis van het opgegeven onderhoudsbereik. Voorbeeld: 05:00.
properties.maintenanceWindow.expirationDateTime Effectieve vervaldatum van het onderhoudsvenster in de notatie JJJJ-MM-DD uu:mm. Het venster wordt gemaakt in de tijdzone die wordt geleverd aan zomertijd op basis van die tijdzone. De vervaldatum moet worden ingesteld op een toekomstige datum. Als dit niet is opgegeven, wordt deze ingesteld op de maximale datum/tijd 9999-12-31 23:59:59.
properties.maintenanceWindow.recurEvery Snelheid waarmee een onderhoudsvenster naar verwachting opnieuw zal optreden. Het tarief kan worden uitgedrukt als dagelijkse, wekelijkse of maandelijkse schema's. Dagelijkse planningen worden opgemaakt als recurEvery: [Frequentie als geheel getal][Dag(en)]. Als er geen frequentie wordt opgegeven, is de standaardfrequentie 1. Voorbeelden van dagelijkse planningen zijn recurEvery: Day, recurEvery: 3Days. Wekelijkse planningen worden opgemaakt als recurEvery: [Frequentie als geheel getal][Week(en)] [Optionele door komma's gescheiden lijst met weekdagen maandag-zondag]. Wekelijkse planningsvoorbeelden zijn recurEvery: 3Weeks, recurEvery: Week zaterdag, zondag. Maandelijkse schema's zijn opgemaakt als [Frequentie als geheel getal][Maand(en)] [Door komma's gescheiden lijst met maanddagen] of [Frequentie als geheel getal][Maand(en)] [Week van maand (eerste, tweede, derde, vierde, laatste)] [weekdag maandag-zondag]. Maandelijkse schemavoorbeelden zijn recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.
properties.maintenanceWindow.startDateTime Effectieve begindatum van het onderhoudsvenster in de notatie JJJJ-MM-DD uu:mm. U kunt de begindatum instellen op de huidige of toekomstige datum. Het venster wordt gemaakt in de opgegeven tijdzone en aangepast aan zomertijd op basis van die tijdzone.
properties.maintenanceWindow.timeZone Naam van de tijdzone. Lijst met tijdzones kan worden verkregen door [System.TimeZoneInfo]:GetSystemTimeZones() uit te voeren in PowerShell. Voorbeeld: Pacific Standard Time, UTC, W. Europe Standard Time, Korea Standard Time, Cen. Australië Standaardtijd.
properties.namespace Hiermee haalt u de naamruimte van de resource op of stelt u deze in
properties.visibility Hiermee haalt u de zichtbaarheid van de configuratie op of stelt u deze in. De standaardwaarde is 'Aangepast'
systemData Azure Resource Manager-metagegevens met createdBy- en modifiedBy-gegevens.
tags Hiermee haalt u tags van de resource op of stelt u deze in
type Type resource

Als u de POST-aanvraag wilt opgeven, kunt u de volgende Azure REST API-aanroep gebruiken met geldige parameters en waarden.

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

Een VIRTUELE machine koppelen aan een planning

Als u een VIRTUELE machine wilt koppelen aan een onderhoudsconfiguratieschema, geeft u de volgende PUT-aanvraag op:

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

Als u de PUT-aanvraag wilt opgeven, kunt u de volgende Azure REST API-aanroep gebruiken met geldige parameters en waarden.

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

Machine uit de planning verwijderen

Als u een machine uit de planning wilt verwijderen, haalt u alle configuratietoewijzingsnamen op voor de machine die is gemaakt om de machine te koppelen aan het huidige schema uit Azure Resource Graph, zoals vermeld:

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

Nadat u de bovenstaande naam hebt verkregen, verwijdert u de configuratietoewijzing door de DELETE-aanvraag te volgen -

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

Volgende stappen