Kontrolowanie aktualizacji za pomocą konfiguracji konserwacji i programu Azure PowerShell
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania
Za pomocą funkcji Konfiguracja konserwacji możesz kontrolować, kiedy należy zastosować aktualizacje platformy do różnych zasobów platformy Azure. W tym artykule opisano opcje programu Azure PowerShell dla dedykowanych hostów i izolowanych maszyn wirtualnych. Aby uzyskać więcej informacji na temat zalet korzystania z funkcji Konfiguracji konserwacji, jej ograniczeń i innych opcji zarządzania, zobacz Zarządzanie aktualizacjami platformy przy użyciu konfiguracji konserwacji.
Jeśli szukasz informacji na temat używania konfiguracji konserwacji dla zestawów skalowania, zobacz Kontrola konserwacji dla zestawów skalowania maszyn wirtualnych platformy Azure.
Ważne
Określone zakresy obsługują określone typy maszyn i harmonogramy. Pamiętaj, aby wybrać odpowiedni zakres dla maszyny wirtualnej.
Włączanie modułu programu Azure PowerShell
Upewnij się, że PowerShellGet
są aktualne:
Install-Module -Name PowerShellGet -Repository PSGallery -Force
Az.Maintenance
Zainstaluj moduł Azure PowerShell:
Install-Module -Name Az.Maintenance
Sprawdź, czy używasz najnowszej Az.Maintenance
wersji programu (wersja 1.2.0):
Get-Module -ListAvailable -Name Az.Maintenance
Upewnij się, że używasz odpowiedniej wersji programu Az.Maintenance
:
Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0
Jeśli instalujesz lokalnie, pamiętaj, aby otworzyć wiersz polecenia programu Azure PowerShell jako administrator.
Może zostać wyświetlony monit o potwierdzenie, że chcesz zainstalować z niezaufanego repozytorium. Wprowadź wartość Y lub wybierz pozycję Tak do pozycji Wszystkie , aby zainstalować moduł.
Utworzenie konfiguracji konserwacji
Pierwszym krokiem tworzenia konfiguracji konserwacji jest utworzenie grupy zasobów jako kontenera dla konfiguracji. W tym przykładzie zostanie utworzona grupa zasobów o nazwie myMaintenanceRG w regionie eastus. Jeśli masz już grupę zasobów, której chcesz użyć, możesz pominąć tę część i zastąpić nazwę grupy zasobów własną nazwą w pozostałych przykładach.
New-AzResourceGroup `
-Location eastus `
-Name myMaintenanceRG
Zaplanowane okno można zadeklarować, gdy platforma Azure będzie cyklicznie stosować aktualizacje zasobów. Po utworzeniu zaplanowanego okna nie trzeba już ręcznie stosować aktualizacji.
Cykl konserwacji można wyrazić jako cykl dzienny, tygodniowy lub miesięczny. Oto kilka przykładów:
- Codziennie:
RecurEvery
wartość"Day"
lub"3Days"
. - Co tydzień:
RecurEvery
wartość"3Weeks"
lub"Week Saturday,Sunday"
. - Co miesiąc:
RecurEvery
wartość"Month day23,day24"
lub"Month Last Sunday"
"Month Fourth Monday"
.
Gospodarz
W tym przykładzie jest tworzona konfiguracja konserwacji o nazwie myConfig o zakresie , Host
z zaplanowanym oknem 5 godzin w czwarty poniedziałek każdego miesiąca. Wartość duration
harmonogramu dla tego zakresu powinna wynosić co najmniej dwie godziny. Aby rozpocząć, zdefiniuj parametry dla elementu 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"
Po zdefiniowaniu parametrów możesz użyć New-AzMaintenanceConfiguration
polecenia cmdlet , aby utworzyć konfigurację:
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Użycie $scope = "Host"
zapewnia, że konfiguracja konserwacji jest używana do kontrolowania aktualizacji na maszynach hosta. Pamiętaj, aby utworzyć konfigurację dla określonego zakresu docelowych maszyn. Dowiedz się więcej o zakresach.
Obraz systemu operacyjnego
W tym przykładzie tworzona jest konfiguracja konserwacji o nazwie myConfig o zakresie , osimage
z zaplanowanym oknem 8 godzin co 5 dni. Wartość duration
harmonogramu dla tego zakresu powinna wynosić co najmniej 5 godzin. Ten zakres umożliwia maksymalnie 7 dni cyklu harmonogramu.
$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "osimage"
$location = "eastus"
$timeZone = "Pacific Standard Time"
$duration = "08:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "5days"
Po zdefiniowaniu parametrów możesz użyć New-AzMaintenanceConfiguration
polecenia cmdlet , aby utworzyć konfigurację:
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Gość
Najnowszym dodatkiem do funkcji Konfiguracji konserwacji jest InGuestPatch
zakres. W tym przykładzie pokazano, jak utworzyć konfigurację konserwacji dla zakresu gościa przy użyciu programu Azure PowerShell. Aby uzyskać więcej informacji na temat tego zakresu, zobacz Gość.
$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";
Po zdefiniowaniu parametrów możesz użyć New-AzMaintenanceConfiguration
polecenia cmdlet , aby utworzyć konfigurację:
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"}
Jeśli spróbujesz utworzyć konfigurację o tej samej nazwie, ale w innej lokalizacji, wystąpi błąd. Nazwy konfiguracji muszą być unikatowe dla grupy zasobów.
Konfiguracje konserwacji można sprawdzić przy użyciu polecenia Get-AzMaintenanceConfiguration:
Get-AzMaintenanceConfiguration | Format-Table -Property Name,Id
Przypisywanie konfiguracji
Po utworzeniu konfiguracji możesz również przypisać do niej maszyny przy użyciu programu Azure PowerShell. Możesz użyć polecenia cmdlet New-AzConfigurationAssignment .
Izolowana maszyna wirtualna
Przypisz konfigurację do maszyny wirtualnej przy użyciu identyfikatora konfiguracji. Podaj wartość -ResourceType VirtualMachines
. Podaj nazwę maszyny wirtualnej dla -ResourceName
, a następnie podaj grupę zasobów maszyny wirtualnej dla -ResourceGroupName
elementu .
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Dedykowany host
Aby zastosować konfigurację do dedykowanego hosta, należy dołączyć -ResourceType hosts
-ResourceParentName
element z nazwą grupy hostów i -ResourceParentType hostGroups
:
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName myHostGroup `
-ResourceParentType hostGroups `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Zestawy skalowania maszyn wirtualnych
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Gość
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myGuest" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Sprawdzanie oczekujących aktualizacji
Sprawdzanie oczekujących aktualizacji użyj polecenia Get-AzMaintenanceUpdate. Użyj -subscription
polecenia , aby określić subskrypcję platformy Azure maszyny wirtualnej, jeśli różni się ona od tej, do której się zalogowano.
Jeśli nie ma żadnych aktualizacji do pokazania, to polecenie nie zwraca niczego. W przeciwnym razie zwraca PSApplyUpdate
obiekt:
{
"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"
}
Izolowana maszyna wirtualna
Sprawdź oczekujące aktualizacje dla izolowanej maszyny wirtualnej. W tym przykładzie dane wyjściowe są sformatowane jako tabela w celu zapewnienia czytelności:
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" | Format-Table
Dedykowany host
Sprawdź oczekujące aktualizacje dla dedykowanego hosta. W tym przykładzie dane wyjściowe są sformatowane jako tabela w celu zapewnienia czytelności:
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" | Format-Table
Zestawy skalowania maszyn wirtualnych
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" | Format-Table
Stosowanie aktualizacji
Użyj polecenia New-AzApplyUpdate , aby zastosować oczekujące aktualizacje. Zastosowanie wywołań aktualizacji może potrwać do 2 godzin.
To polecenie cmdlet działa tylko dla zakresów obrazów hosta i systemu operacyjnego. Nie działa dla zakresu gościa.
Izolowana maszyna wirtualna
Utwórz żądanie zastosowania aktualizacji do izolowanej maszyny wirtualnej:
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute"
Po powodzeniu PSApplyUpdate
to polecenie zwraca obiekt. Możesz użyć atrybutu Name
w poleceniu Get-AzApplyUpdate
, aby sprawdzić stan aktualizacji zgodnie z opisem w dalszej części tego artykułu.
Dedykowany host
Zastosuj aktualizacje do dedykowanego hosta:
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName Microsoft.Compute
Zestawy skalowania maszyn wirtualnych
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute"
Sprawdzanie stanu aktualizacji
Aby sprawdzić stan aktualizacji, użyj polecenia Get-AzApplyUpdate. Następujące polecenia pokazują stan najnowszej aktualizacji przy użyciu default
parametru -ApplyUpdateName
. Możesz zastąpić nazwę aktualizacji (zwróconą przez polecenie New-AzApplyUpdate ), aby uzyskać stan określonej aktualizacji.
To polecenie cmdlet działa tylko dla zakresów obrazów hosta i systemu operacyjnego. Nie działa dla zakresu gościa.
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
to czas zakończenia aktualizacji, niezależnie od tego, czy zainicjowano aktualizację, czy zainicjowaną przez platformę, ponieważ nie użyto okna samodzielnej konserwacji. Jeśli aktualizacja nigdy nie została zastosowana za pomocą konfiguracji konserwacji, LastUpdateTime
zostanie wyświetlona wartość domyślna.
Izolowana maszyna wirtualna
Sprawdź dostępność aktualizacji określonej maszyny wirtualnej:
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Dedykowany host
Sprawdź dostępność aktualizacji dedykowanego hosta:
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Zestawy skalowania maszyn wirtualnych
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Usuwanie konfiguracji konserwacji
Aby usunąć konfigurację konserwacji, użyj polecenia Remove-AzMaintenanceConfiguration:
Remove-AzMaintenanceConfiguration `
-ResourceGroupName "myResourceGroup" `
-Name "configName"
Następne kroki
Aby dowiedzieć się więcej, zobacz Konserwacja maszyn wirtualnych na platformie Azure.