Control de las actualizaciones mediante configuraciones de mantenimiento y la CLI de Azure
Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes
Puede usar la característica Configuraciones de mantenimiento para controlar cuándo aplicar actualizaciones de plataforma a varios recursos de Azure. En este artículo se describen las opciones de la CLI de Azure para usar esta característica. Para obtener más información sobre las ventajas de usar configuraciones de mantenimiento, sus limitaciones y otras opciones de administración, consulte Administración de actualizaciones de plataforma con Configuraciones de mantenimiento.
Importante
Ámbitos de específicos admiten determinados tipos y programaciones de máquina. Asegúrese de seleccionar el ámbito adecuado para la máquina virtual (VM).
Creación de una configuración de mantenimiento
El primer paso para crear una configuración de mantenimiento consiste en crear un grupo de recursos como contenedor para la configuración. En este ejemplo, se crea un grupo de recursos denominado myMaintenanceRG en eastus. Si ya tiene un grupo de recursos que desea usar, puede omitir esta parte y reemplazar el nombre del grupo de recursos por el que posee en el resto de los ejemplos.
az group create \
--location eastus \
--name myMaintenanceRG
Después de crear el grupo de recursos, use az maintenance configuration create
para crear una configuración de mantenimiento.
Host
En este ejemplo se crea una configuración de mantenimiento denominada myConfig con ámbito para hospedar máquinas, con una ventana programada de 5 horas el cuarto lunes de cada mes:
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope host \
--location eastus \
--maintenance-window-duration "05:00" \
--maintenance-window-recur-every "Month Fourth Monday" \
--maintenance-window-start-date-time "2020-12-30 08:00" \
--maintenance-window-time-zone "Pacific Standard Time"
El uso de --maintenance-scope host
garantiza que la configuración de mantenimiento se utiliza para controlar las actualizaciones de la infraestructura de host. Si intenta crear una configuración con el mismo nombre, pero en otra ubicación, obtendrá un error. Los nombres de configuración deben ser únicos dentro de su grupo de recursos.
Para comprobar si creó correctamente la configuración de mantenimiento, puede consultar las configuraciones de mantenimiento disponibles mediante az maintenance configuration list
:
az maintenance configuration list
--query "[].{Name:name, ID:id}"
--output table
Puede expresar la periodicidad de mantenimiento como diaria, semanal o mensual. Estos son algunos ejemplos:
- Diaria: valor
maintenance-window-recur-every
de"Day"
o"3Days"
. - Semanal: valor
maintenance-window-recur-every
de"3Weeks"
o"Week Saturday,Sunday"
. - Mensual: un
maintenance-window-recur-every
valor de"Month day23,day24"
o"Month Last Sunday"
oMonth Fourth Monday
.
Conjuntos de escalado de máquinas virtuales
En este ejemplo se crea una configuración de mantenimiento denominada myConfig con el ámbito de imagen del sistema operativo para los conjuntos de escalado de máquinas virtuales, con una ventana programada de 5 horas el cuarto lunes de cada mes:
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope osimage \
--location eastus \
--maintenance-window-duration "05:00" \
--maintenance-window-recur-every "Month Fourth Monday" \
--maintenance-window-start-date-time "2020-12-30 08:00" \
--maintenance-window-time-zone "Pacific Standard Time"
VM invitadas
En este ejemplo se crea una configuración de mantenimiento denominada myConfig con ámbito a máquinas invitadas (máquinas virtuales y servidores habilitados para Azure Arc), con una ventana programada de 2 horas cada 20 días. Obtenga más información sobre las configuraciones de mantenimiento en máquinas virtuales invitadas.
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope InGuestPatch \
--location eastus \
--maintenance-window-duration "02:00" \
--maintenance-window-recur-every "20days" \
--maintenance-window-start-date-time "2022-12-30 07:00" \
--maintenance-window-time-zone "Pacific Standard Time" \
--install-patches-linux-parameters package-name-masks-to-exclude="ppt" package-name-masks-to-include="apt" classifications-to-include="Other" \
--install-patches-windows-parameters kb-numbers-to-exclude="KB123456" kb-numbers-to-include="KB123456" classifications-to-include="FeaturePack" \
--reboot-setting "IfRequired" \
--extension-properties InGuestPatchMode="User"
Asignación de la configuración
Use az maintenance assignment create
para asignar la configuración a la máquina.
Máquina virtual aislada
Aplique la configuración a una máquina virtual de host aislada mediante el identificador de la configuración. Especifique --resource-type virtualMachines
. Proporcione el nombre de la máquina virtual para --resource-name
, el grupo de recursos de la máquina virtual para --resource-group
y la ubicación de la máquina virtual para --location
.
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
Host dedicado
Para aplicar una configuración a un host dedicado, debe incluir --resource-type hosts
, --resource-parent-name
con el nombre del grupo host y --resource-parent-type hostGroups
.
El parámetro --resource-id
es el identificador del host. Puede usar az-vm-host-get-instance-view para obtener el identificador del host dedicado.
az maintenance assignment create \
--resource-group myDHResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myDhResourceGroup/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig" \
--location eastus \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
Conjuntos de escalado de máquinas virtuales
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
VM invitadas
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
Comprobación de la configuración
Puede comprobar que la configuración se aplicó correctamente o comprobar qué configuración se aplica actualmente mediante az maintenance assignment list
.
Máquina virtual aislada
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Host dedicado
az maintenance assignment list \
--resource-group myDHResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups \
--query "[].{ResourceGroup:resourceGroup,configName:name}" \
--output table
Conjuntos de escalado de máquinas virtuales
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
VM invitadas
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Búsqueda de actualizaciones pendientes
Use az maintenance update list
para ver si hay actualizaciones pendientes. Actualice --subscription
para que sea el identificador de la suscripción que contiene la máquina virtual.
Si no hay actualizaciones, el comando devuelve un mensaje de error que contiene el texto Resource not found...StatusCode: 404
.
Si hay actualizaciones, el comando devuelve solo una, incluso si hay varias actualizaciones pendientes. Los datos de esta actualización se devuelven en un objeto :
[
{
"impactDurationInSec": 9,
"impactType": "Freeze",
"maintenanceScope": "Host",
"notBefore": "2020-03-03T07:23:04.905538+00:00",
"resourceId": "/subscriptions/9120c5ff-e78e-4bd0-b29f-75c19cadd078/resourcegroups/DemoRG/providers/Microsoft.Compute/hostGroups/demoHostGroup/hosts/myHost",
"status": "Pending"
}
]
Máquina virtual aislada
Compruebe si hay actualizaciones pendientes para una máquina virtual aislada. En este ejemplo, la salida tiene el formato de tabla para mejorar la legibilidad:
az maintenance update list \
--subscription {subscription ID} \
--resource-group myMaintenanceRg \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--output table
Host dedicado
Compruebe si hay actualizaciones pendientes para un host dedicado. En este ejemplo, se aplica a la salida formato de tabla para facilitar la lectura. Reemplace los valores de los recursos por los suyos propios.
az maintenance update list \
--subscription {subscription ID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parentname myHostGroup \
--resource-parent-type hostGroups \
--output table
Aplicación de actualizaciones
Use az maintenance apply update
para aplicar actualizaciones pendientes. Si se ejecuta correctamente, este comando devuelve JSON que contiene los detalles de la actualización. Las llamadas para aplicar actualizaciones pueden tardar hasta 2 horas en completarse.
Máquina virtual aislada
Cree una solicitud para aplicar actualizaciones a una máquina virtual aislada:
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute
Host dedicado
Aplicar actualizaciones a un host dedicado:
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
Conjuntos de escalado de máquinas virtuales
Aplicar actualizaciones a un conjunto de escalado:
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute
Comprobación del estado de aplicación de las actualizaciones
Puede comprobar el progreso de las actualizaciones mediante az maintenance applyupdate get
.
Para ver los resultados de la última actualización, use default
como nombre de actualización. O reemplace myUpdateName
por el nombre de la actualización que se devolvió al ejecutar az maintenance applyupdate create
.
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
es la hora a la que finalizó la actualización, tanto si inició la actualización como si la plataforma la inició porque no usó la ventana de mantenimiento automático. Si nunca se aplicó una actualización a través de configuraciones de mantenimiento, LastUpdateTime
mostrará el valor predeterminado.
Máquina virtual aislada
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Host dedicado
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Conjuntos de escalado de máquinas virtuales
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Eliminación de una configuración de mantenimiento
Para eliminar una configuración de mantenimiento, use az maintenance configuration delete
. Al eliminar la configuración se quita el control de mantenimiento de los recursos asociados.
az maintenance configuration delete \
--subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
-resource-group myResourceGroup \
--resource-name myConfig
Pasos siguientes
Para obtener más información, consulte Mantenimiento de máquinas virtuales en Azure.