Обработка планового обслуживания с помощью PowerShell
Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы
Чтобы узнать, когда для виртуальных машин запланировано обслуживание, можно также использовать Azure PowerShell. Информацию о плановом обслуживании можно получить с помощью командлета Get-AzVM, используя параметр -status
.
Сведения об обслуживании возвращаются, только если имеется запланированное обслуживание. Если нет запланированного обслуживания, влияющего на виртуальную машину, командлет не возвращает информацию об обслуживании.
Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status
Выходные данные
MaintenanceRedeployStatus :
IsCustomerInitiatedMaintenanceAllowed : True
PreMaintenanceWindowStartTime : 5/14/2018 12:30:00 PM
PreMaintenanceWindowEndTime : 5/19/2018 12:30:00 PM
MaintenanceWindowStartTime : 5/21/2018 4:30:00 PM
MaintenanceWindowEndTime : 6/4/2018 4:30
LastOperationResultCode : None
В разделе MaintenanceRedeployStatus возвращаются следующие свойства:
значение | Описание |
---|---|
IsCustomerInitiatedMaintenanceAllowed | Указывает, можно ли сейчас запустить обслуживание на виртуальной машине |
PreMaintenanceWindowStartTime | Начало периода самообслуживания, когда можно инициировать обслуживание на виртуальной машине |
PreMaintenanceWindowEndTime | Завершение периода самообслуживания, когда можно инициировать обслуживание на виртуальной машине |
MaintenanceWindowStartTime | Начало периода запланированного обслуживания, в течение которого Azure запускает обслуживание для виртуальной машины. |
MaintenanceWindowEndTime | Завершение периода запланированного обслуживания, в течение которого Azure запускает обслуживание для виртуальной машины. |
LastOperationResultCode | Результат последней попытки инициирования обслуживания на виртуальной машине |
Вы также можете получить информацию о состоянии обслуживания всех виртуальных машин в группе ресурсов с помощью командлета Get-AzVM, не указывая виртуальную машину.
Get-AzVM -ResourceGroupName myResourceGroup -Status
В следующем примере PowerShell используется идентификатор подписки и возвращается список виртуальных машин, указывающих, запланировано ли оно на обслуживание.
function MaintenanceIterator {
param (
$SubscriptionId
)
Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null
$rgList = Get-AzResourceGroup
foreach ($rg in $rgList) {
$vmList = Get-AzVM -ResourceGroupName $rg.ResourceGroupName
foreach ($vm in $vmList) {
$vmDetails = Get-AzVM -ResourceGroupName $rg.ResourceGroupName -Name $vm.Name -Status
[pscustomobject]@{
Name = $vmDetails.Name
ResourceGroupName = $rg.ResourceGroupName
IsCustomerInitiatedMaintenanceAllowed = [bool]$vmDetails.MaintenanceRedeployStatus.IsCustomerInitiatedMaintenanceAllowed
LastOperationMessage = $vmDetails.MaintenanceRedeployStatus.LastOperationMessage
}
}
}
}
Запуск обслуживания вашей виртуальной машины с помощью PowerShell
Используя информацию из функции в предыдущем разделе, следующая команда запускает обслуживание на виртуальной машине, если для свойства IsCustomerInitiatedMaintenanceAllowed задано значение true.
MaintenanceIterator -SubscriptionId <Subscription ID> |
Where-Object -FilterScript {$_.IsCustomerMaintenanceAllowed} |
Restart-AzVM -PerformMaintenance
Классические развертывания
Внимание
Виртуальные машины, созданные с помощью классической модели развертывания, будут прекращены 1 сентября 2023 г.
Если вы используете ресурсы IaaS из службы управления службами Azure, выполните миграцию к 1 сентября 2023 года. Рекомендуем осуществить этот переход как можно раньше, чтобы воспользоваться различными улучшенными функциями в Azure Resource Manager.
Дополнительные сведения см. в статье "Перенос ресурсов IaaS в Azure Resource Manager к 1 сентября 2023 г.".
Если у вас все еще есть устаревшие виртуальные машины, развернутые с использованием классической модели развертывания, вы можете сделать запрос к ним и запустить их обслуживание с помощью PowerShell.
Чтобы узнать состояние обслуживания виртуальной машины, введите:
Get-AzureVM -ServiceName <Service name> -Name <VM name>
Чтобы начать обслуживание классической виртуальной машины, введите:
Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>
Следующие шаги
Управлять плановым обслуживанием можно также с помощью Azure CLI или портала.