Dela via


Kontrollera uppdateringar med underhållskonfigurationer och Azure PowerShell

Gäller för: ✔️ Virtuella Linux-datorer ✔️ med virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar ✔️ Enhetliga skalningsuppsättningar

Du kan använda funktionen Underhållskonfigurationer för att styra när plattformsuppdateringar ska tillämpas på olika Azure-resurser. Den här artikeln beskriver Azure PowerShell-alternativen för dedikerade värdar och isolerade virtuella datorer (VM). Mer information om fördelarna med att använda funktionen Underhållskonfigurationer, dess begränsningar och andra hanteringsalternativ finns i Hantera plattformsuppdateringar med underhållskonfigurationer.

Information om hur du använder underhållskonfigurationer för skalningsuppsättningar finns i Underhållskontroll för Skalningsuppsättningar för virtuella Azure-datorer.

Viktigt!

Specifika omfång stöder vissa datortyper och scheman. Se till att välja rätt omfång för den virtuella datorn.

Aktivera Azure PowerShell-modulen

Kontrollera att det PowerShellGet är uppdaterat:

Install-Module -Name PowerShellGet -Repository PSGallery -Force

Az.Maintenance Installera Azure PowerShell-modulen:

Install-Module -Name Az.Maintenance

Kontrollera att du kör den senaste versionen av Az.Maintenance (version 1.2.0):

Get-Module -ListAvailable -Name Az.Maintenance

Kontrollera att du kör rätt version av Az.Maintenance:

Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0

Om du installerar lokalt måste du öppna din Azure PowerShell-fråga som administratör.

Du kan bli ombedd att bekräfta att du vill installera från en obetrodd lagringsplats. Ange Y eller välj Ja till Alla för att installera modulen.

Skapa en underhållskonfiguration

Det första steget när du skapar en underhållskonfiguration är att skapa en resursgrupp som en container för din konfiguration. I det här exemplet skapas en resursgrupp med namnet myMaintenanceRG i eastus. Om du redan har en resursgrupp som du vill använda kan du hoppa över den här delen och ersätta resursgruppens namn med ditt eget i resten av exemplen.

New-AzResourceGroup `
   -Location eastus `
   -Name myMaintenanceRG

Du kan deklarera ett schemalagt fönster när Azure återkommande tillämpar uppdateringarna på dina resurser. När du har skapat ett schemalagt fönster behöver du inte längre tillämpa uppdateringarna manuellt.

Du kan uttrycka återkommande underhåll som dagligen, varje vecka eller varje månad. Nedan följer några exempel:

  • Dagligen: Ett RecurEvery värde av "Day" eller "3Days".
  • Varje vecka: Värdet RecurEvery "3Weeks" eller "Week Saturday,Sunday".
  • Månatlig: Ett RecurEvery värde av "Month day23,day24" eller "Month Last Sunday" "Month Fourth Monday".

Host

Det här exemplet skapar en underhållskonfiguration med namnet myConfig som är begränsad till Host, med ett schemalagt fönster på 5 timmar den fjärde måndagen i varje månad. Värdet duration för schemat för det här omfånget ska vara minst två timmar. Börja genom att definiera parametrarna för 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"

När du har definierat parametrarna kan du använda cmdleten New-AzMaintenanceConfiguration för att skapa konfigurationen:

New-AzMaintenanceConfiguration
   -ResourceGroup $RGName `
   -Name $configName `
   -MaintenanceScope $scope `
   -Location $location `
   -StartDateTime $startDateTime `
   -TimeZone $timeZone `
   -Duration $duration `
   -RecurEvery $recurEvery

Att använda $scope = "Host" säkerställer att underhållskonfigurationen används för att kontrollera uppdateringar på värddatorer. Se till att skapa en konfiguration för det specifika omfånget för de datorer som du riktar in dig på. Läs mer om omfång.

OS-avbildning

I det här exemplet skapas en underhållskonfiguration med namnet myConfig som är begränsad till osimage, med ett schemalagt fönster på 8 timmar var femte dag. Värdet duration för schemat för det här omfånget ska vara minst 5 timmar. Det här omfånget tillåter maximalt 7 dagar för återkommande scheman.

$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "osimage"
$location = "eastus"
$timeZone = "Pacific Standard Time" 
$duration = "08:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "5days"

När du har definierat parametrarna kan du använda cmdleten New-AzMaintenanceConfiguration för att skapa konfigurationen:

New-AzMaintenanceConfiguration
   -ResourceGroup $RGName `
   -Name $configName `
   -MaintenanceScope $scope `
   -Location $location `
   -StartDateTime $startDateTime `
   -TimeZone $timeZone `
   -Duration $duration `
   -RecurEvery $recurEvery

Gäst

Det senaste tillägget till funktionen Underhållskonfigurationer är omfånget InGuestPatch . Det här exemplet visar hur du skapar en underhållskonfiguration för ett gästomfång med hjälp av Azure PowerShell. Mer information om det här omfånget finns i Gäst.

$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";

När du har definierat parametrarna kan du använda cmdleten New-AzMaintenanceConfiguration för att skapa konfigurationen:

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

Om du försöker skapa en konfiguration med samma namn men på en annan plats får du ett fel. Konfigurationsnamn måste vara unika för resursgruppen.

Du kan kontrollera om du har skapat underhållskonfigurationerna med hjälp av Get-AzMaintenanceConfiguration:

Get-AzMaintenanceConfiguration | Format-Table -Property Name,Id

Tilldela konfigurationen

När du har skapat konfigurationen kanske du också vill tilldela datorer till den med hjälp av Azure PowerShell. Du kan använda cmdleten New-AzConfigurationAssignment .

Isolerad virtuell dator

Tilldela konfigurationen till en virtuell dator med hjälp av konfigurationens ID. Ange -ResourceType VirtualMachines. Ange namnet på den virtuella datorn för -ResourceNameoch ange resursgruppen för den virtuella datorn för -ResourceGroupName.

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVM" `
   -ResourceType "VirtualMachines" `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Dedikerad värd

Om du vill tillämpa en konfiguration på en dedikerad värd måste du inkludera -ResourceType hosts, -ResourceParentName med namnet på värdgruppen och -ResourceParentType hostGroups:

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName myHostGroup `
   -ResourceParentType hostGroups `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Skalningsuppsättningar för virtuella datorer

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Gäst

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myGuest" `
   -ResourceType "VirtualMachines" `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Sök efter väntande uppdateringar

Sök efter väntande uppdateringar med Get-AzMaintenanceUpdate. Använd -subscription för att ange den virtuella datorns Azure-prenumeration om den skiljer sig från den som du är inloggad på.

Om det inte finns några uppdateringar att visa returnerar det här kommandot ingenting. Annars returneras ett PSApplyUpdate objekt:

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

Isolerad virtuell dator

Sök efter väntande uppdateringar för en isolerad virtuell dator. I det här exemplet formateras utdata som en tabell för läsbarhet:

Get-AzMaintenanceUpdate `
  -ResourceGroupName "myResourceGroup" `
  -ResourceName "myVM" `
  -ResourceType "VirtualMachines" `
  -ProviderName "Microsoft.Compute" | Format-Table

Dedikerad värd

Sök efter väntande uppdateringar för en dedikerad värd. I det här exemplet formateras utdata som en tabell för läsbarhet:

Get-AzMaintenanceUpdate `
   -ResourceGroupName "myResourceGroup" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName "myHostGroup" `
   -ResourceParentType "hostGroups" `
   -ProviderName "Microsoft.Compute" | Format-Table

Skalningsuppsättningar för virtuella datorer

Get-AzMaintenanceUpdate `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute" | Format-Table

Tillämpa uppdateringar

Använd New-AzApplyUpdate för att tillämpa väntande uppdateringar. Det kan ta upp till 2 timmar att genomföra uppdateringsanrop.

Den här cmdleten fungerar bara för värd- och OS-avbildningsomfången. Det fungerar inte för gästomfånget.

Isolerad virtuell dator

Skapa en begäran om att tillämpa uppdateringar på en isolerad virtuell dator:

New-AzApplyUpdate `
  -ResourceGroupName "myResourceGroup" `
  -ResourceName "myVM" `
  -ResourceType "VirtualMachines" `
  -ProviderName "Microsoft.Compute"

Vid lyckat resultat returnerar det här kommandot ett PSApplyUpdate objekt. Du kan använda Name attributet i Get-AzApplyUpdate kommandot för att kontrollera uppdateringsstatusen enligt beskrivningen senare i den här artikeln.

Dedikerad värd

Tillämpa uppdateringar på en dedikerad värd:

New-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName "myHostGroup" `
   -ResourceParentType "hostGroups" `
   -ProviderName Microsoft.Compute

Skalningsuppsättningar för virtuella datorer

New-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute"

Kontrollera uppdateringsstatus

Om du vill kontrollera status för en uppdatering använder du Get-AzApplyUpdate. Följande kommandon visar status för den senaste uppdateringen med hjälp default av parametern -ApplyUpdateName . Du kan ersätta namnet på uppdateringen (som returneras av kommandot New-AzApplyUpdate ) för att hämta status för en specifik uppdatering.

Den här cmdleten fungerar bara för värd- och OS-avbildningsomfången. Det fungerar inte för gästomfånget.

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 är den tid då uppdateringen slutfördes, oavsett om du initierade uppdateringen eller plattformen initierade den eftersom du inte använde självunderhållsfönstret. Om en uppdatering aldrig tillämpades via underhållskonfigurationer visar LastUpdateTime standardvärdet.

Isolerad virtuell dator

Sök efter uppdateringar till en specifik virtuell dator:

Get-AzApplyUpdate `
  -ResourceGroupName "myResourceGroup" `
  -ResourceName "myVM" `
  -ResourceType "VirtualMachines" `
  -ProviderName "Microsoft.Compute" `
  -ApplyUpdateName "applyUpdateName"

Dedikerad värd

Sök efter uppdateringar till en dedikerad värd:

Get-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName "myHostGroup" `
   -ResourceParentType "hostGroups" `
   -ProviderName "Microsoft.Compute" `
   -ApplyUpdateName "applyUpdateName"

Skalningsuppsättningar för virtuella datorer

New-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute" `
   -ApplyUpdateName "applyUpdateName"

Ta bort en underhållskonfiguration

Om du vill ta bort en underhållskonfiguration använder du Remove-AzMaintenanceConfiguration:

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

Nästa steg

Mer information finns i Underhåll för virtuella datorer i Azure.