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 -ResourceName
och 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.