Udostępnij za pośrednictwem


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 , Hostz 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 , osimagez 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 -ResourceGroupNameelementu .

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.