Share via


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 , Hostmet 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 , osimagemet 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 -ResourceNameen 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 hostsu , -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.