Lidando com a manutenção planejada usando o PowerShell
Aplica-se a: ✔️ VMs ✔️ Linux VMs ✔️ do Windows Conjuntos ✔️ de escala flexíveis Conjuntos de balanças uniformes
Você pode usar o Azure PowerShell para ver quando as VMs estão agendadas para manutenção. As informações de manutenção planejada estão disponíveis no cmdlet Get-AzVM quando você usa o -status
parâmetro.
As informações de manutenção só são devolvidas se houver manutenção planeada. Se nenhuma manutenção for agendada que afete a VM, o cmdlet não retornará nenhuma informação de manutenção.
Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status
Saída
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
As seguintes propriedades são retornadas em MaintenanceRedeployStatus:
valor | Description |
---|---|
IsCustomerInitiatedMaintenanceAllowed | Indica se você pode iniciar a manutenção na VM neste momento |
Pré-manutençãoJanelaStartTime | O início da janela de autoatendimento de manutenção quando você pode iniciar a manutenção em sua VM |
PreMaintenanceWindowEndTime | O fim da janela de autoatendimento de manutenção quando você pode iniciar a manutenção em sua VM |
ManutençãoJanelaStartTime | O início da manutenção agendada na qual o Azure inicia a manutenção em sua VM |
MaintenanceWindowEndTime | O fim da janela de manutenção agendada na qual o Azure inicia a manutenção em sua VM |
LastOperationResultCode | O resultado da última tentativa de iniciar a manutenção na VM |
Você também pode obter o status de manutenção para todas as VMs em um grupo de recursos usando Get-AzVM e não especificando uma VM.
Get-AzVM -ResourceGroupName myResourceGroup -Status
O exemplo do PowerShell a seguir usa sua ID de assinatura e retorna uma lista de VMs indicando se elas estão agendadas para manutenção.
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
}
}
}
}
Iniciar a manutenção em sua VM usando o PowerShell
Usando informações da função na seção anterior, o seguinte inicia a manutenção em uma VM se IsCustomerInitiatedMaintenanceAllowed estiver definido como true.
MaintenanceIterator -SubscriptionId <Subscription ID> |
Where-Object -FilterScript {$_.IsCustomerMaintenanceAllowed} |
Restart-AzVM -PerformMaintenance
Implementações clássicas
Importante
As VMs criadas por meio do modelo de implantação clássico serão desativadas em 1º de setembro de 2023.
Se você usar recursos IaaS do Gerenciamento de Serviços do Azure, conclua sua migração até 1º de setembro de 2023. Recomendamos que você faça a mudança mais cedo para aproveitar os muitos aprimoramentos de recursos no Gerenciador de Recursos do Azure.
Para obter mais informações, consulte Migrar seus recursos de IaaS para o Azure Resource Manager até 1º de setembro de 2023.
Se você ainda tiver VMs herdadas que foram implantadas usando o modelo de implantação clássico, poderá usar o PowerShell para consultar VMs e iniciar a manutenção.
Para obter o status de manutenção de uma VM, digite:
Get-AzureVM -ServiceName <Service name> -Name <VM name>
Para iniciar a manutenção em sua VM clássica, digite:
Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>
Próximos passos
Você também pode lidar com a manutenção planejada usando a CLI ou o portal do Azure.