Updates beheren met onderhoudsconfiguraties en Azure PowerShell
Van toepassing op: ✔️ Virtuele Linux-machines voor Windows-VM's ✔️ ✔️ Flexibele schaalsets Uniform-schaalsets ✔️
U kunt de functie Onderhoudsconfiguraties gebruiken om te bepalen wanneer platformupdates op verschillende Azure-resources moeten worden toegepast. In dit artikel worden de Azure PowerShell-opties voor toegewezen hosts en geïsoleerde virtuele machines (VM's) beschreven. Zie Platformupdates beheren met onderhoudsconfiguraties voor meer informatie over de voordelen van het gebruik van de functie Onderhoudsconfiguraties, de beperkingen en andere beheeropties.
Als u op zoek bent naar informatie over het gebruik van onderhoudsconfiguraties voor schaalsets, raadpleegt u Onderhoudsbeheer voor Virtuele-machineschaalsets van Azure.
Belangrijk
Specifieke bereiken ondersteunen bepaalde machinetypen en -planningen. Zorg ervoor dat u het juiste bereik voor uw VIRTUELE machine selecteert.
De Azure PowerShell-module inschakelen
Zorg ervoor dat dit PowerShellGet
up-to-date is:
Install-Module -Name PowerShellGet -Repository PSGallery -Force
Installeer de Az.Maintenance
Azure PowerShell-module:
Install-Module -Name Az.Maintenance
Controleer of u de nieuwste versie van Az.Maintenance
(versie 1.2.0) uitvoert:
Get-Module -ListAvailable -Name Az.Maintenance
Zorg ervoor dat u de juiste versie van Az.Maintenance
:
Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0
Als u lokaal installeert, moet u uw Azure PowerShell-prompt openen als beheerder.
Mogelijk wordt u gevraagd om te bevestigen dat u wilt installeren vanuit een niet-vertrouwde opslagplaats. Voer Y in of selecteer Ja op alles om de module te installeren.
Een onderhoudsconfiguratie maken
De eerste stap bij het maken van een onderhoudsconfiguratie is het maken van een resourcegroep als een container voor uw configuratie. In dit voorbeeld wordt een resourcegroep met de naam myMaintenanceRG gemaakt in eastus. Als u al een resourcegroep hebt die u wilt gebruiken, kunt u dit gedeelte overslaan en de naam van de resourcegroep vervangen door uw eigen resourcegroep in de rest van de voorbeelden.
New-AzResourceGroup `
-Location eastus `
-Name myMaintenanceRG
U kunt een gepland venster declareren wanneer Azure de updates op uw resources herhaaldelijk toepast. Nadat u een gepland venster hebt gemaakt, hoeft u de updates niet meer handmatig toe te passen.
U kunt het onderhoudspatroon uitdrukken als dagelijks, wekelijks of maandelijks. Hieronder volgen een aantal voorbeelden:
- Dagelijks: Een
RecurEvery
waarde van"Day"
of"3Days"
. - Wekelijks: Een
RecurEvery
waarde van"3Weeks"
of"Week Saturday,Sunday"
. - Maandelijks: Een
RecurEvery
waarde van"Month day23,day24"
of"Month Last Sunday"
."Month Fourth Monday"
Host
In dit voorbeeld wordt een onderhoudsconfiguratie gemaakt met de naam myConfig , Host
met een gepland venster van 5 uur op de vierde maandag van elke maand. De duration
waarde van het schema voor dit bereik moet ten minste twee uur zijn. Om te beginnen definieert u de parameters voor New-AzMaintenanceConfiguration
:
$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "Host"
$location = "eastus"
$timeZone = "Pacific Standard Time"
$duration = "05:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "Month Fourth Monday"
Nadat u de parameters hebt gedefinieerd, kunt u de New-AzMaintenanceConfiguration
cmdlet gebruiken om uw configuratie te maken:
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Het gebruik $scope = "Host"
zorgt ervoor dat de onderhoudsconfiguratie wordt gebruikt voor het beheren van updates op hostcomputers. Zorg ervoor dat u een configuratie maakt voor het specifieke bereik van de machines waarop u zich richt. Meer informatie over bereiken.
Installatiekopieën van het besturingssysteem
In dit voorbeeld wordt een onderhoudsconfiguratie gemaakt met de naam myConfig , osimage
met een gepland venster van 8 uur om de 5 dagen. De duration
waarde van het schema voor dit bereik moet ten minste 5 uur zijn. Met dit bereik kan maximaal 7 dagen worden gepland voor terugkeerpatroon.
$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "osimage"
$location = "eastus"
$timeZone = "Pacific Standard Time"
$duration = "08:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "5days"
Nadat u de parameters hebt gedefinieerd, kunt u de New-AzMaintenanceConfiguration
cmdlet gebruiken om uw configuratie te maken:
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Gast
De meest recente toevoeging aan de functie Onderhoudsconfiguraties is het InGuestPatch
bereik. In dit voorbeeld ziet u hoe u een onderhoudsconfiguratie voor een gastbereik maakt met behulp van Azure PowerShell. Zie Gast voor meer informatie over dit bereik.
$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "InGuestPatch"
$location = "eastus"
$timeZone = "Pacific Standard Time"
$duration = "04:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "Week Saturday, Sunday"
$WindowsParameterClassificationToInclude = "FeaturePack","ServicePack";
$WindowParameterKbNumberToInclude = "KB123456","KB123466";
$WindowParameterKbNumberToExclude = "KB123456","KB123466";
$RebootOption = "IfRequired";
$LinuxParameterClassificationToInclude = "Other";
$LinuxParameterPackageNameMaskToInclude = "apt","httpd";
$LinuxParameterPackageNameMaskToExclude = "ppt","userpk";
Nadat u de parameters hebt gedefinieerd, kunt u de New-AzMaintenanceConfiguration
cmdlet gebruiken om uw configuratie te maken:
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery `
-WindowParameterClassificationToInclude $WindowsParameterClassificationToInclude `
-WindowParameterKbNumberToInclude $WindowParameterKbNumberToInclude `
-WindowParameterKbNumberToExclude $WindowParameterKbNumberToExclude `
-InstallPatchRebootSetting $RebootOption `
-LinuxParameterPackageNameMaskToInclude $LinuxParameterPackageNameMaskToInclude `
-LinuxParameterClassificationToInclude $LinuxParameterClassificationToInclude `
-LinuxParameterPackageNameMaskToExclude $LinuxParameterPackageNameMaskToExclude `
-ExtensionProperty @{"InGuestPatchMode"="User"}
Als u probeert een configuratie met dezelfde naam te maken, maar op een andere locatie, krijgt u een foutmelding. Configuratienamen moeten uniek zijn voor uw resourcegroep.
U kunt controleren of u de onderhoudsconfiguraties hebt gemaakt met behulp van Get-AzMaintenanceConfiguration:
Get-AzMaintenanceConfiguration | Format-Table -Property Name,Id
De configuratie toewijzen
Nadat u uw configuratie hebt gemaakt, wilt u er mogelijk ook machines aan toewijzen met behulp van Azure PowerShell. U kunt de cmdlet New-AzConfigurationAssignment gebruiken.
Geïsoleerde VM
Wijs de configuratie toe aan een VIRTUELE machine met behulp van de id van de configuratie. Geef -ResourceType VirtualMachines
op. Geef de naam op van de VIRTUELE machine voor -ResourceName
en geef de resourcegroep van de VIRTUELE machine op voor -ResourceGroupName
.
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Toegewezen host
Als u een configuratie wilt toepassen op een toegewezen host, moet -ResourceType hosts
u , -ResourceParentName
met de naam van de hostgroep en -ResourceParentType hostGroups
:
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName myHostGroup `
-ResourceParentType hostGroups `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Virtuele-machineschaalsets
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Gast
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myGuest" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Controleren op updates die in behandeling zijn
Gebruik Get-AzMaintenanceUpdate om te controleren of er updates in behandeling zijn. Gebruik -subscription
dit om het Azure-abonnement van de virtuele machine op te geven, als deze verschilt van het abonnement waarnaar u bent aangemeld.
Als er geen updates worden weergegeven, retourneert deze opdracht niets. Anders wordt een PSApplyUpdate
object geretourneerd:
{
"maintenanceScope": "Host",
"impactType": "Freeze",
"status": "Pending",
"impactDurationInSec": 9,
"notBefore": "2020-02-21T16:47:44.8728029Z",
"properties": {
"resourceId": "/subscriptions/39c6cced-4d6c-4dd5-af86-57499cd3f846/resourcegroups/Ignite2019/providers/Microsoft.Compute/virtualMachines/MCDemo3"
}
Geïsoleerde VM
Controleer op updates die in behandeling zijn voor een geïsoleerde VM. In dit voorbeeld is de uitvoer opgemaakt als een tabel voor leesbaarheid:
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" | Format-Table
Toegewezen host
Controleer op updates die in behandeling zijn voor een toegewezen host. In dit voorbeeld is de uitvoer opgemaakt als een tabel voor leesbaarheid:
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" | Format-Table
Virtuele-machineschaalsets
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" | Format-Table
Updates toepassen
Gebruik New-AzApplyUpdate om wachtende updates toe te passen. Het kan tot 2 uur duren voordat het toepassen van update-aanroepen is voltooid.
Deze cmdlet werkt alleen voor de host- en besturingssysteeminstallatiekopiebereiken. Dit werkt niet voor het gastbereik.
Geïsoleerde VM
Maak een aanvraag om updates toe te passen op een geïsoleerde VM:
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute"
Bij succes retourneert deze opdracht een PSApplyUpdate
object. U kunt het Name
kenmerk in de Get-AzApplyUpdate
opdracht gebruiken om de updatestatus te controleren, zoals verderop in dit artikel wordt beschreven.
Toegewezen host
Updates toepassen op een toegewezen host:
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName Microsoft.Compute
Virtuele-machineschaalsets
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute"
Status van update controleren
Gebruik Get-AzApplyUpdate om de status van een update te controleren. De volgende opdrachten geven de status van de meest recente update weer met behulp van default
de -ApplyUpdateName
parameter. U kunt de naam van de update vervangen (geretourneerd door de opdracht New-AzApplyUpdate ) om de status van een specifieke update op te halen.
Deze cmdlet werkt alleen voor de host- en besturingssysteeminstallatiekopiebereiken. Dit werkt niet voor het gastbereik.
Status : Completed
ResourceId : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso
LastUpdateTime : 1/1/2020 12:00:00 AM
Id : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso/providers/Microsoft.Maintenance/applyUpdates/default
Name : default
Type : Microsoft.Maintenance/applyUpdates
LastUpdateTime
is het tijdstip waarop de update is voltooid, ongeacht of u de update of het platform hebt gestart omdat u het zelfonderhoudsvenster niet hebt gebruikt. Als een update nooit is toegepast via onderhoudsconfiguraties, LastUpdateTime
wordt de standaardwaarde weergegeven.
Geïsoleerde VM
Controleer op updates voor een specifieke virtuele machine:
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Toegewezen host
Controleer op updates voor een toegewezen host:
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Virtuele-machineschaalsets
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Een onderhoudsconfiguratie verwijderen
Als u een onderhoudsconfiguratie wilt verwijderen, gebruikt u Remove-AzMaintenanceConfiguration:
Remove-AzMaintenanceConfiguration `
-ResourceGroupName "myResourceGroup" `
-Name "configName"
Volgende stappen
Zie Onderhoud voor virtuele machines in Azure voor meer informatie.