Kontrolowanie aktualizacji za pomocą konfiguracji konserwacji i Azure PowerShell
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows — elastyczne zestawy ✔️ ✔️ skalowania
Tworzenie konfiguracji konserwacji pozwala zdecydować, kiedy należy zastosować aktualizacje platformy do różnych zasobów platformy Azure. W tym temacie opisano opcje Azure PowerShell dla dedykowanych hostów i izolowanych maszyn wirtualnych. Aby uzyskać więcej informacji na temat korzyści związanych z używaniem 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 konfiguracji konserwacji zestawów skalowania, zobacz Kontrola konserwacji dla Virtual Machine Scale Sets.
Ważne
Istnieją różne zakresy , które obsługują określone typy maszyn i harmonogramy, dlatego upewnij się, że wybierasz odpowiedni zakres dla maszyny wirtualnej.
Włączanie modułu programu PowerShell
Upewnij się, że jest PowerShellGet
aktualna.
Install-Module -Name PowerShellGet -Repository PSGallery -Force
Az.Maintenance
Zainstaluj moduł programu PowerShell.
Install-Module -Name Az.Maintenance
Sprawdź, czy korzystasz z najnowszej wersji modułu Az.Maintenance
programu PowerShell (wersja 1.2.0)
Get-Module -ListAvailable -Name Az.Maintenance
Upewnij się, że używasz odpowiedniej wersji Az.Maintenance
Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0
Jeśli instalujesz lokalnie, upewnij się, że zostanie otwarty monit programu PowerShell jako administrator.
Może zostać również wyświetlony monit o potwierdzenie, że chcesz zainstalować z niezaufanego repozytorium. Wpisz Y
lub wybierz pozycję Tak do pozycji Wszystkie , aby zainstalować moduł.
Utworzenie konfiguracji konserwacji
Pierwszym krokiem do utworzenia konfiguracji konserwacji jest utworzenie grupy zasobów jako kontenera dla konfiguracji. W tym przykładzie w eastus zostanie utworzona grupa zasobów o nazwie myMaintenanceRG. 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ż stosować aktualizacji ręcznie. Cykl konserwacji może być wyrażony jako codziennie, co tydzień lub co miesiąc. Przykłady to:
- daily— RecurEvery "Day" lub "3Days"
- weekly - RecurEvery "3Weeks" lub "Tydzień sobota,niedziela"
- monthly — RecurEvery "Month day23,day24" lub "Month Last Sunday" lub "Month Fourth Monday" (Miesiąc czwarty poniedziałek)
Host
W tym przykładzie tworzona jest konfiguracja konserwacji o nazwie myConfig o zakresie hostowania z zaplanowanym oknem 5 godzin w czwarty poniedziałek każdego miesiąca. Należy pamiętać, że czas trwania harmonogramu dla tego zakresu powinien wynosić co najmniej dwie godziny. Aby rozpocząć, należy zdefiniować wszystkie parametry wymagane do 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 teraz utworzyć konfigurację za New-AzMaintenanceConfiguration
pomocą polecenia cmdlet .
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Dzięki temu $scope = "Host"
konfiguracja konserwacji jest używana do kontrolowania aktualizacji na maszynach hosta. Musisz upewnić się, że tworzysz konfigurację dla określonego zakresu docelowych maszyn. Aby dowiedzieć się więcej na temat zakresów, zapoznaj się z zakresami konfiguracji konserwacji.
Obraz systemu operacyjnego
W tym przykładzie utworzymy konfigurację konserwacji o nazwie myConfig o zakresie osimage z zaplanowanym oknem 8 godzin co 5 dni. Należy pamiętać, że czas trwania harmonogramu dla tego zakresu powinien wynosić co najmniej 5 godzin. Kolejną kluczową różnicą jest to, że ten zakres pozwala maksymalnie 7 dni na cykl 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 teraz utworzyć konfigurację za New-AzMaintenanceConfiguration
pomocą polecenia cmdlet .
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Gość
Naszym najnowszym dodatkiem do oferty konfiguracji konserwacji jest zakres InGuestPatch . W tym przykładzie pokazano, jak utworzyć konfigurację konserwacji dla zakresu gościa przy użyciu programu PowerShell. Aby dowiedzieć się więcej o tym zakresie, 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 teraz utworzyć konfigurację za New-AzMaintenanceConfiguration
pomocą polecenia cmdlet .
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 PowerShell. Aby to osiągnąć, użyjemy polecenia New-AzConfigurationAssignment.
Izolowana maszyna wirtualna
Przypisz konfigurację do maszyny wirtualnej przy użyciu identyfikatora konfiguracji. Określ -ResourceType VirtualMachines
i podaj nazwę maszyny wirtualnej dla -ResourceName
, oraz 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 również 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"
Virtual Machine Scale Sets
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
Użyj polecenia Get-AzMaintenanceUpdate , aby sprawdzić, czy istnieją oczekujące aktualizacje. Użyj -subscription
polecenia , aby określić subskrypcję platformy Azure maszyny wirtualnej, jeśli różni się ona od zalogowanego.
Jeśli nie ma aktualizacji do pokazania, to polecenie nie zwróci nic. W przeciwnym razie zwróci obiekt PSApplyUpdate:
{
"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 na potrzeby 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 na potrzeby czytelności.
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" | Format-Table
Virtual Machine Scale Sets
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. Wykonanie wywołań aktualizacji może potrwać do 2 godzin. To polecenie cmdlet będzie działać tylko dla zakresów Host i OSImage . Nie będzie 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 to polecenie zwróci PSApplyUpdate
obiekt. Atrybut Name można użyć w poleceniu , Get-AzApplyUpdate
aby sprawdzić stan aktualizacji. Zobacz Sprawdzanie stanu aktualizacji.
Dedykowany host
Stosowanie aktualizacji do dedykowanego hosta.
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName Microsoft.Compute
Virtual Machine Scale Sets
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute"
Sprawdzanie stanu aktualizacji
Użyj polecenia Get-AzApplyUpdate , aby sprawdzić stan aktualizacji. Poniższe 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 będzie działać tylko dla zakresów Host i OSImage . Nie będzie 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 ukończenia aktualizacji zainicjowany przez Ciebie lub przez platformę w przypadku, gdy okno samodzielnej konserwacji nie zostało użyte. Jeśli nigdy nie zastosowano aktualizacji za pomocą konfiguracji konserwacji, zostanie wyświetlona wartość domyślna.
Izolowana maszyna wirtualna
Sprawdź aktualizacje określonej maszyny wirtualnej.
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Dedykowany host
Sprawdź aktualizacje dedykowanego hosta.
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Virtual Machine Scale Sets
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Usuwanie konfiguracji konserwacji
Użyj polecenia Remove-AzMaintenanceConfiguration , aby usunąć konfigurację konserwacji.
Remove-AzMaintenanceConfiguration `
-ResourceGroupName "myResourceGroup" `
-Name "configName"
Następne kroki
Aby dowiedzieć się więcej, zobacz Konserwacja i aktualizacje.