Control del mantenimiento planeado con PowerShell
Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes
Azure PowerShell se puede usar para ver cuándo está programado el mantenimiento de las máquinas virtuales. La información de mantenimiento planeado está disponible con el cmdlet Get-AzVM cuando se usa el parámetro -status
.
La información de mantenimiento se devuelve solo si hay mantenimiento planeado. Si no está programado ningún mantenimiento que afecte a la máquina virtual, el cmdlet no devuelve ninguna información de mantenimiento.
Get-AzVM -ResourceGroupName myResourceGroup -Name myVM -Status
Output
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
Las siguientes propiedades se devuelven en MaintenanceRedeployStatus:
Value | Descripción |
---|---|
IsCustomerInitiatedMaintenanceAllowed | Indica si puede iniciar el mantenimiento en la máquina virtual en este momento |
PreMaintenanceWindowStartTime | El comienzo de la ventana de autoservicio de mantenimiento en la que puede iniciar el mantenimiento en la máquina virtual |
PreMaintenanceWindowEndTime | El final de la ventana de autoservicio de mantenimiento en la que puede iniciar el mantenimiento en la máquina virtual |
MaintenanceWindowStartTime | El comienzo del mantenimiento programado en que Azure inicia el mantenimiento de la máquina virtual |
MaintenanceWindowEndTime | El final de la ventana de mantenimiento programado en la que Azure inicia el mantenimiento de la máquina virtual |
LastOperationResultCode | El resultado del último intento de iniciar el mantenimiento en la máquina virtual |
También puede obtener el estado de mantenimiento de todas las VM en un grupo de recursos mediante el uso de Get-AzVM sin especificar una VM.
Get-AzVM -ResourceGroupName myResourceGroup -Status
En el siguiente ejemplo de PowerShell se toma el id. de la suscripción y se devuelve una lista de las máquinas virtuales indicando si están programadas para mantenimiento.
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
}
}
}
}
Inicio del mantenimiento en la máquina virtual mediante PowerShell
Con la información de la función de la sección anterior, lo siguiente inicia el mantenimiento en una máquina virtual si IsCustomerInitiatedMaintenanceAllowed está establecido en true.
MaintenanceIterator -SubscriptionId <Subscription ID> |
Where-Object -FilterScript {$_.IsCustomerMaintenanceAllowed} |
Restart-AzVM -PerformMaintenance
Implementaciones clásicas
Importante
Las máquinas virtuales creadas mediante el modelo de implementación clásica se retirarán el 1 de setiembre de 2023.
Si usa recursos de IaaS de Azure Service Management, complete la migración antes del 1 de setiembre de 2023. Le recomendamos que realice el cambio antes, para aprovechar las diversas mejoras de las características de Azure Resource Manager.
Para obtener más información, consulte Migración de los recursos de IaaS a Azure Resource Manager antes del 1 de setiembre de 2023.
Si todavía tiene máquinas virtuales heredadas que se han implementado según el modelo de implementación clásico, puede usar PowerShell para consultar las máquinas virtuales e iniciar el mantenimiento.
Para obtener el estado de mantenimiento de una máquina virtual, escriba lo siguiente:
Get-AzureVM -ServiceName <Service name> -Name <VM name>
Para iniciar el mantenimiento en una máquina virtual clásica, escriba lo siguiente:
Restart-AzureVM -InitiateMaintenance -ServiceName <service name> -Name <VM name>
Pasos siguientes
El mantenimiento planeado también se puede controlar con la CLI de Azure o con Portal.