Řízení aktualizací pomocí konfigurací údržby a Azure PowerShellu

Platí pro: ✔️ Virtuální počítače s Windows s Linuxem ✔️ ✔️ – Flexibilní škálovací sady Uniform Scale Sets ✔️

Pomocí funkce Konfigurace údržby můžete řídit, kdy použít aktualizace platformy na různé prostředky Azure. Tento článek popisuje možnosti Azure PowerShellu pro vyhrazené hostitele a izolované virtuální počítače. Další informace o výhodách používání funkce Konfigurace údržby, jejích omezení a dalších možností správy najdete v tématu Správa aktualizací platformy pomocí konfigurací údržby.

Pokud hledáte informace o použití konfigurace údržby pro škálovací sady, přečtěte si téma Řízení údržby pro škálovací sady virtuálních počítačů Azure.

Důležité

Konkrétní obory podporují určité typy a plány počítačů. Nezapomeňte vybrat správný obor pro váš virtuální počítač.

Povolení modulu Azure PowerShellu

Ujistěte se, že PowerShellGet je aktuální:

Install-Module -Name PowerShellGet -Repository PSGallery -Force

Nainstalujte modul Azure PowerShellu Az.Maintenance :

Install-Module -Name Az.Maintenance

Zkontrolujte, že používáte nejnovější verzi Az.Maintenance (verze 1.2.0):

Get-Module -ListAvailable -Name Az.Maintenance

Ujistěte se, že používáte odpovídající verzi Az.Maintenance:

Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0

Pokud instalujete místně, nezapomeňte otevřít výzvu Azure PowerShellu jako správce.

Může se zobrazit výzva k potvrzení, že chcete nainstalovat z nedůvěryhodného úložiště. Pokud chcete modul nainstalovat, zadejte Y nebo vyberte Ano všem.

Vytvoření konfigurace údržby

Prvním krokem při vytváření konfigurace údržby je vytvoření skupiny prostředků jako kontejneru pro vaši konfiguraci. Tento příklad vytvoří skupinu prostředků myMaintenanceRG v eastus. Pokud už máte skupinu prostředků, kterou chcete použít, můžete tuto část přeskočit a ve zbývajících příkladech nahradit název skupiny prostředků vlastním názvem.

New-AzResourceGroup `
   -Location eastus `
   -Name myMaintenanceRG

Naplánované okno můžete deklarovat, když Azure opakovaně použije aktualizace vašich prostředků. Po vytvoření naplánovaného okna už nemusíte aktualizace instalovat ručně.

Opakování údržby můžete vyjádřit jako denní, týdenní nebo měsíční. Několik příkladů:

  • Denně: RecurEvery Hodnota "Day" nebo "3Days".
  • Týdně: RecurEvery Hodnota nebo "Week Saturday,Sunday"."3Weeks"
  • Měsíčně: RecurEvery Hodnota "Month day23,day24" nebo "Month Last Sunday""Month Fourth Monday".

Hostitelský počítač

Tento příklad vytvoří konfiguraci údržby s názvem myConfig vymezenou na Host, s naplánovaným oknem 5 hodin čtvrtou pondělí každého měsíce. Hodnota duration plánu pro tento obor by měla být aspoň dvě hodiny. Začněte definováním parametrů pro 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 definování parametrů můžete pomocí rutiny New-AzMaintenanceConfiguration vytvořit konfiguraci:

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

Použití $scope = "Host" zajišťuje, že se konfigurace údržby používá k řízení aktualizací na hostitelských počítačích. Nezapomeňte vytvořit konfiguraci pro konkrétní rozsah počítačů, na které cílíte. Přečtěte si další informace o oborech.

Image operačního systému

Tento příklad vytvoří konfiguraci údržby s názvem myConfig vymezenou na osimage, s naplánovaným oknem 8 hodin každých 5 dnů. Hodnota duration plánu pro tento obor by měla být nejméně 5 hodin. Tento obor umožňuje pro opakování plánu maximálně 7 dnů.

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

Po definování parametrů můžete pomocí rutiny New-AzMaintenanceConfiguration vytvořit konfiguraci:

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

Host

Posledním doplňkem funkce Konfigurace údržby je InGuestPatch obor. Tento příklad ukazuje, jak vytvořit konfiguraci údržby pro obor hosta pomocí Azure PowerShellu. Další informace o tomto oboru najdete v tématu Host.

$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 definování parametrů můžete pomocí rutiny New-AzMaintenanceConfiguration vytvořit konfiguraci:

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

Pokud se pokusíte vytvořit konfiguraci se stejným názvem, ale v jiném umístění, zobrazí se chyba. Názvy konfigurací musí být jedinečné pro vaši skupinu prostředků.

Pomocí rutiny Get-AzMaintenanceConfiguration můžete zkontrolovat, jestli jste úspěšně vytvořili konfigurace údržby:

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

Přiřazení konfigurace

Po vytvoření konfigurace můžete chtít počítače také přiřadit pomocí Azure PowerShellu. Můžete použít rutinu New-AzConfigurationAssignment .

Izolovaný virtuální počítač

Přiřaďte konfiguraci k virtuálnímu počítači pomocí ID konfigurace. Zadejte -ResourceType VirtualMachines. Zadejte název virtuálního počítače pro -ResourceNamea zadejte skupinu prostředků virtuálního počítače pro -ResourceGroupName.

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

Vyhrazený hostitel

Pokud chcete použít konfiguraci pro vyhrazeného hostitele, musíte zahrnout -ResourceType hosts, -ResourceParentName s názvem skupiny hostitelů a -ResourceParentType hostGroups:

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

Škálovací sady virtuálních počítačů

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

Host

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

Kontrola čekajících aktualizací

Kontrola čekajících aktualizací použijte Get-AzMaintenanceUpdate. Slouží -subscription k určení předplatného Azure virtuálního počítače, pokud se liší od předplatného, ke kterému jste přihlášení.

Pokud se nezobrazí žádné aktualizace, tento příkaz nevrátí nic. V opačném případě vrátí 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"
} 

Izolovaný virtuální počítač

Zkontrolujte čekající aktualizace pro izolovaný virtuální počítač. V tomto příkladu je výstup formátován jako tabulka pro čitelnost:

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

Vyhrazený hostitel

Zkontrolujte čekající aktualizace pro vyhrazeného hostitele. V tomto příkladu je výstup formátován jako tabulka pro čitelnost:

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

Škálovací sady virtuálních počítačů

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

Instalace aktualizací

K instalaci čekajících aktualizací použijte New-AzApplyUpdate . Dokončení volání aktualizací může trvat až 2 hodiny.

Tato rutina funguje jenom pro obory imagí hostitele a operačního systému. Nefunguje pro obor hosta.

Izolovaný virtuální počítač

Vytvořte žádost o použití aktualizací na izolovaný virtuální počítač:

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

Při úspěchu vrátí tento příkaz PSApplyUpdate objekt. Pomocí atributu NameGet-AzApplyUpdate v příkazu můžete zkontrolovat stav aktualizace, jak je popsáno dále v tomto článku.

Vyhrazený hostitel

Aktualizace použijte u vyhrazeného hostitele:

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

Škálovací sady virtuálních počítačů

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

Kontrola stavu aktualizace

Pokud chcete zkontrolovat stav aktualizace, použijte Rutinu Get-AzApplyUpdate. Následující příkazy zobrazují stav nejnovější aktualizace pomocí default parametru -ApplyUpdateName . Název aktualizace (vrácený příkazem New-AzApplyUpdate ) můžete nahradit, abyste získali stav konkrétní aktualizace.

Tato rutina funguje jenom pro obory imagí hostitele a operačního systému. Nefunguje pro obor hosta.

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 je čas dokončení aktualizace, ať už jste zahájili aktualizaci nebo platformu, protože jste nepoužíli časové období samoobslužné údržby. Pokud se aktualizace nikdy nepoužila prostřednictvím konfigurace údržby, LastUpdateTime zobrazí se výchozí hodnota.

Izolovaný virtuální počítač

Zkontrolujte aktualizace konkrétního virtuálního počítače:

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

Vyhrazený hostitel

Zkontrolujte aktualizace vyhrazeného hostitele:

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

Škálovací sady virtuálních počítačů

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

Odstranění konfigurace údržby

Pokud chcete odstranit konfiguraci údržby, použijte Remove-AzMaintenanceConfiguration:

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

Další kroky

Další informace najdete v tématu Údržba virtuálních počítačů v Azure.