Updates beheren met onderhoudsconfiguraties en Azure PowerShell

Van toepassing op: ✔️ Linux-VM's ✔️ Windows-VM's ✔️ Flexibele schaalsets ✔️ Uniforme schaalsets

Door een onderhoudsconfiguratie te maken, kunt u bepalen wanneer u platformupdates wilt toepassen op verschillende Azure-resources. In dit onderwerp worden de Azure PowerShell opties voor toegewezen hosts en geïsoleerde VM's behandeld. Zie Platformupdates beheren met onderhoudsconfiguraties voor meer informatie over de voordelen van het gebruik van onderhoudsconfiguraties, de beperkingen en andere beheeropties.

Als u op zoek bent naar informatie over onderhoudsconfiguraties voor schaalsets, raadpleegt u Onderhoudsbeheer voor Virtual Machine Scale Sets.

Belangrijk

Er zijn verschillende bereiken die ondersteuning bieden voor bepaalde machinetypen en schema's, dus zorg ervoor dat u het juiste bereik voor uw virtuele machine selecteert.

De PowerShell-module inschakelen

Zorg ervoor dat PowerShellGet deze up-to-date is.

Install-Module -Name PowerShellGet -Repository PSGallery -Force

Installeer de Az.Maintenance PowerShell-module.

Install-Module -Name Az.Maintenance

Controleer of u de nieuwste versie van Az.Maintenance de PowerShell-module (versie 1.2.0) uitvoert

Get-Module -ListAvailable -Name Az.Maintenance

Zorg ervoor dat u de juiste versie van het gebruik uitvoert Az.Maintenance

Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0

Als u lokaal installeert, moet u de PowerShell-prompt openen als beheerder.

Mogelijk wordt u ook gevraagd om te bevestigen dat u wilt installeren vanuit een niet-vertrouwde opslagplaats. Typ Y of selecteer Ja op alles om de module te installeren.

Een onderhoudsconfiguratie maken

De eerste stap voor het maken van een onderhoudsconfiguratie is het maken van een resourcegroep als 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 regelmatig toepast op uw resources. Zodra u een gepland venster hebt gemaakt, hoeft u de updates niet meer handmatig toe te passen. Onderhoudspatroon kan worden uitgedrukt als dagelijks, wekelijks of maandelijks. Een aantal voorbeelden:

  • daily- RecurEvery "Day" or "3Days"
  • wekelijks- RecurEvery "3Weeks" of "Week zaterdag,zondag"
  • monthly- Recury "Month day23,day24" or "Month Last Sunday" or "Month Fourth Monday"

Host

In dit voorbeeld wordt een onderhoudsconfiguratie gemaakt met de naam myConfig, die wordt gehost met een gepland venster van 5 uur op de vierde maandag van elke maand. Het is belangrijk te weten dat de duur van de planning voor dit bereik ten minste twee uur moet duren. Om te beginnen moet u alle parameters definiëren die nodig zijn 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 nu 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

Met behulp $scope = "Host" van zorgt u ervoor dat de onderhoudsconfiguratie wordt gebruikt voor het beheren van updates op hostcomputers. U moet ervoor zorgen dat u een configuratie maakt voor het specifieke bereik van de machines waarop u zich richt. Zie Onderhoudsconfiguratiebereiken voor meer informatie over bereiken.

Installatiekopieën van het besturingssysteem

In dit voorbeeld maken we een onderhoudsconfiguratie met de naam myConfig die is gericht op osimage met een gepland venster van 8 uur om de 5 dagen. Het is belangrijk te weten dat de duur van de planning voor dit bereik ten minste 5 uur moet zijn. Een ander belangrijk verschil is dat dit bereik een maximum van 7 dagen toestaat voor schema-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 nu 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

Onze meest recente toevoeging aan de onderhoudsconfiguratie is het InGuestPatch-bereik . In dit voorbeeld ziet u hoe u een onderhoudsconfiguratie voor gastbereik maakt met behulp van 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 nu 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 een configuratie probeert te maken met dezelfde naam, 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 de configuratie hebt gemaakt, wilt u er mogelijk ook machines aan toewijzen met behulp van PowerShell. Hiervoor gebruiken we New-AzConfigurationAssignment.

Geïsoleerde VM

Wijs de configuratie toe aan een VM met behulp van de id van de configuratie. Geef -ResourceType VirtualMachines de naam op van de VM voor -ResourceNameen geef de resourcegroep van de VM 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 u ook opnemen -ResourceType hosts, -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 zien of er updates in behandeling zijn. Gebruik -subscription om het Azure-abonnement van de VM op te geven als dit verschilt van het abonnement waarbij 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 in behandeling zijnde updates toe te passen. Het kan tot 2 uur duren voordat het toepassen van update-aanroepen is voltooid. Deze cmdlet werkt alleen voor host - en OSImage-bereiken . Dit werkt NIET voor 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"

Als dit lukt, retourneert deze opdracht een PSApplyUpdate -object. U kunt het kenmerk Name in de Get-AzApplyUpdate opdracht gebruiken om de updatestatus te controleren. Zie Updatestatus controleren.

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"

Updatestatus controleren

Gebruik Get-AzApplyUpdate om de status van een update te controleren. De onderstaande opdrachten geven de status van de meest recente update weer door voor de -ApplyUpdateName parameter te gebruikendefault. 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 host - en OSImage-bereiken . Dit werkt NIET voor 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, geïnitieerd door u of door het platform voor het geval het venster voor zelfonderhoud niet is gebruikt. Als er nog nooit een update is toegepast via onderhoudsconfiguraties, 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

Controleren 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

Gebruik Remove-AzMaintenanceConfiguration om een onderhoudsconfiguratie te verwijderen.

Remove-AzMaintenanceConfiguration `
   -ResourceGroupName "myResourceGroup" `
   -Name "configName"

Volgende stappen

Zie Onderhoud en updates voor meer informatie.