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/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"
]
}
}
}
}'
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/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"
}'
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
- Zie querylogboeken om de update-evaluatie- en implementatielogboeken weer te geven die zijn gegenereerd door Update Manager.
- Zie Updatebeheer oplossen om problemen op te lossen.