Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы ✔️ Унифицированные масштабируемые наборы
Вы можете использовать функцию конфигураций обслуживания для управления применением обновлений платформы к различным ресурсам Azure. В этой статье рассматриваются параметры Azure PowerShell для выделенных узлов и изолированных виртуальных машин. Дополнительные сведения о преимуществах использования функции конфигураций обслуживания, ограничений и других параметров управления см. в разделе "Управление обновлениями платформы с помощью конфигураций обслуживания".
Если вы ищете сведения об использовании конфигураций обслуживания для масштабируемых наборов, см. управление обслуживанием для масштабируемых наборов виртуальных машин Azure.
Это важно
Определенные области применения поддерживают определенные типы машин и расписания. Не забудьте выбрать нужную область для виртуальной машины.
Включение модуля Azure PowerShell
Убедитесь, что PowerShellGet обновлён.
Install-Module -Name PowerShellGet -Repository PSGallery -Force
Az.Maintenance Установите модуль Azure PowerShell:
Install-Module -Name Az.Maintenance
Убедитесь, что вы используете последнюю версию Az.Maintenance (версия 1.2.0):
Get-Module -ListAvailable -Name Az.Maintenance
Убедитесь, что вы используете соответствующую версию Az.Maintenance:
Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0
Если вы устанавливаете локально, убедитесь, что вы запускаете окно Azure PowerShell от имени администратора.
Возможно, вам будет предложено подтвердить, что вы хотите установить из ненадежного репозитория. Введите Y или нажмите кнопку "Да" для установки модуля.
Создайте конфигурацию обслуживания
Первым шагом при создании конфигурации обслуживания является создание группы ресурсов в качестве контейнера для конфигурации. В этом примере создается группа ресурсов myMaintenanceRG в регионе eastus. Если у вас уже есть группа ресурсов, которую вы хотите использовать, можно пропустить эту часть и заменить имя группы ресурсов собственным в остальных примерах.
New-AzResourceGroup `
-Location eastus `
-Name myMaintenanceRG
Вы можете объявить запланированное окно, когда Azure будет регулярно применять обновления к ресурсам. После создания запланированного окна больше не нужно применять обновления вручную.
Вы можете выразить повторение обслуживания как ежедневное, еженедельное или ежемесячное. Ниже приведены некоторые примеры.
-
Ежедневно:
RecurEveryзначение"Day"или"3Days". -
Еженедельно:
RecurEveryзначение"3Weeks"или"Week Saturday,Sunday". -
Ежемесячно:
RecurEveryзначение"Month day23,day24"или"Month Last Sunday"или"Month Fourth Monday".
Хозяин
В этом примере создается конфигурация обслуживания под названием myConfig и Hostс запланированным окном в 5 часов в четвертый понедельник каждого месяца. Значение duration расписания для этой области должно быть не менее двух часов. Чтобы начать, определите параметры для 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"
После определения параметров можно использовать New-AzMaintenanceConfiguration командлет для создания конфигурации:
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Использование $scope = "Host" гарантирует, что конфигурация обслуживания используется для управления обновлениями на хост-компьютерах. Обязательно создайте конфигурацию для конкретной области применения машин, которые вы нацеливаете.
Дополнительные сведения о областях.
Образ ОС
В этом примере создается конфигурация обслуживания с именем myConfigosimageс заданной областью действия с запланированным окном 8 часов каждые 5 дней. Значение duration расписания для данной области должно быть не менее 5 часов. Этот интервал допускает максимум 7 дней для повторения расписания.
$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "osimage"
$location = "eastus"
$timeZone = "Pacific Standard Time"
$duration = "08:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "5days"
После определения параметров можно использовать New-AzMaintenanceConfiguration командлет для создания конфигурации:
New-AzMaintenanceConfiguration
-ResourceGroup $RGName `
-Name $configName `
-MaintenanceScope $scope `
-Location $location `
-StartDateTime $startDateTime `
-TimeZone $timeZone `
-Duration $duration `
-RecurEvery $recurEvery
Гость
Последнее дополнение к возможности конфигураций обслуживания — это область InGuestPatch. В этом примере показано, как создать конфигурацию обслуживания для гостевой области с помощью Azure PowerShell. Дополнительные сведения об этой области см. в разделе "Гость".
$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";
После определения параметров можно использовать New-AzMaintenanceConfiguration командлет для создания конфигурации:
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"}
Если вы попытаетесь создать конфигурацию с тем же именем, но в другом расположении, вы получите ошибку. Имена конфигураций должны быть уникальными для группы ресурсов.
Можно проверить, успешно ли вы создали конфигурации обслуживания с помощью Get-AzMaintenanceConfiguration:
Get-AzMaintenanceConfiguration | Format-Table -Property Name,Id
Назначьте конфигурацию
После создания вашей конфигурации вам может также понадобиться назначить машины с помощью Azure PowerShell. Вы можете использовать командлет New-AzConfigurationAssignment .
Изолированная виртуальная машина
Назначьте конфигурацию виртуальной машине с помощью идентификатора конфигурации. Укажите -ResourceType VirtualMachines. Укажите имя виртуальной машины -ResourceNameи укажите группу ресурсов виртуальной машины.-ResourceGroupName
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Выделенный узел
Чтобы применить конфигурацию к выделенному узлу, необходимо включить -ResourceType hosts-ResourceParentName в нее имя группы узлов и-ResourceParentType hostGroups:
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName myHostGroup `
-ResourceParentType hostGroups `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Наборы виртуальных машин с возможностью масштабирования
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Гость
New-AzConfigurationAssignment `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myGuest" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ConfigurationAssignmentName "configName" `
-MaintenanceConfigurationId "configID"
Проверка ожидающих обновлений
Чтобы выполнить проверку ожидающих обновлений, используйте Get-AzMaintenanceUpdate. Используйте -subscription для указания подписки Microsoft Azure для виртуальной машины, если она отличается от подписки, в которую вы вошли.
Если нет обновлений для отображения, эта команда ничего не возвращает. В противном случае возвращается объект PSApplyUpdate.
{
"maintenanceScope": "Host",
"impactType": "Freeze",
"status": "Pending",
"impactDurationInSec": 9,
"notBefore": "2020-02-21T16:47:44.8728029Z",
"properties": {
"resourceId": "/subscriptions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/resourcegroups/Ignite2019/providers/Microsoft.Compute/virtualMachines/MCDemo3"
}
Изолированная виртуальная машина
Проверьте наличие ожидающих обновлений для изолированной виртуальной машины. В этом примере выходные данные форматируются в виде таблицы для удобства чтения:
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" | Format-Table
Выделенный хост
Проверьте наличие ожидающих обновлений для выделенного узла. В этом примере выходные данные форматируются в виде таблицы для удобства чтения:
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" | Format-Table
Наборы виртуальных машин с возможностью масштабирования
Get-AzMaintenanceUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" | Format-Table
Применение обновлений
Используйте New-AzApplyUpdate для применения ожидающих обновлений. Применение процедуры обновления может занять до 2 часов.
Этот командлет работает только для области узла и образа ОС. Он не поддерживается для гостевого контекста.
Изолированная виртуальная машина
Создайте запрос, чтобы применить обновления к изолированной виртуальной машине:
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute"
При успешном выполнении PSApplyUpdate эта команда возвращает объект. Атрибут Name можно использовать в команде Get-AzApplyUpdate для проверки состояния обновления, как описано далее в этой статье.
Выделенный узел
Примените обновления к выделенному узлу:
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName Microsoft.Compute
Наборы виртуальных машин с возможностью масштабирования
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute"
Проверка состояния обновления
Чтобы проверить состояние обновления, используйте Get-AzApplyUpdate. Следующие команды показывают состояние последнего обновления с помощью default-ApplyUpdateName параметра. Вы можете заменить имя обновления (возвращенное командой New-AzApplyUpdate ), чтобы получить состояние определенного обновления.
Этот командлет работает только для области хоста и образа ОС. Он не работает для области действия гостя.
Status : Completed
ResourceId : /subscriptions/b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso
LastUpdateTime : 1/1/2020 12:00:00 AM
Id : /subscriptions/b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso/providers/Microsoft.Maintenance/applyUpdates/default
Name : default
Type : Microsoft.Maintenance/applyUpdates
LastUpdateTime — это время, когда завершилось обновление, независимо от того, инициировали ли вы его самостоятельно или платформа сделала это, поскольку вы не использовали период самостоятельного обслуживания. Если обновление никогда не применялось с помощью конфигураций обслуживания, LastUpdateTime отображается значение по умолчанию.
Изолированная виртуальная машина
Проверьте наличие обновлений для конкретной виртуальной машины:
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myVM" `
-ResourceType "VirtualMachines" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Выделенный узел
Проверьте наличие обновлений выделенного хоста.
Get-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-ResourceName "myHost" `
-ResourceType "hosts" `
-ResourceParentName "myHostGroup" `
-ResourceParentType "hostGroups" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Наборы виртуальных машин с возможностью масштабирования
New-AzApplyUpdate `
-ResourceGroupName "myResourceGroup" `
-Location "eastus" `
-ResourceName "myVMSS" `
-ResourceType "VirtualMachineScaleSets" `
-ProviderName "Microsoft.Compute" `
-ApplyUpdateName "applyUpdateName"
Удалите конфигурацию обслуживания
Чтобы удалить конфигурацию обслуживания, используйте Remove-AzMaintenanceConfiguration:
Remove-AzMaintenanceConfiguration `
-ResourceGroupName "myResourceGroup" `
-Name "configName"
Дальнейшие действия
Дополнительные сведения см. в статье "Обслуживание виртуальных машин в Azure".