Administración mediante programación de las actualizaciones de las máquinas virtuales de Azure
En este artículo se explica el proceso de uso de la API REST de Azure para desencadenar una evaluación y una implementación de actualizaciones en la máquina virtual de Azure con el Administrador de actualizaciones de Azure en Azure. Si no está familiarizado con el Administrador de actualizaciones y quiere saber más, consulte la introducción al Administrador de actualizaciones de Azure. Para usar la API REST de Azure para administrar servidores habilitados para Arc, consulte Uso de servidores habilitados para Arc mediante programación.
El Administrador de actualizaciones de Azure en Azure le permite usar la API REST de Azure para el acceso mediante programación. Además, puede usar los comandos REST adecuados de Azure PowerShell y la CLI de Azure.
La compatibilidad con la API REST de Azure para administrar máquinas virtuales de Azure está disponible mediante la extensión de máquina virtual del Administrador de actualizaciones.
Evaluación de la actualización
Para desencadenar una evaluación de actualizaciones en la máquina virtual de Azure, especifique la siguiente solicitud POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/assessPatches?api-version=2020-12-01`
Para especificar la solicitud POST, puede usar el comando az vm assess-patches de la CLI de Azure.
az vm assess-patches -g MyResourceGroup -n MyVm
Implementación de actualizaciones
Para desencadenar una implementación de actualizaciones en la máquina virtual de Azure, especifique la siguiente solicitud POST:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/installPatches?api-version=2020-12-01`
Cuerpo de la solicitud
En la tabla siguiente se describen los elementos del cuerpo de la solicitud:
Propiedad | Descripción |
---|---|
maximumDuration |
Cantidad máxima de tiempo que se ejecuta la operación. Debe ser una cadena de duración compatible con ISO 8601 como, por ejemplo, PT4H (4 horas). |
rebootSetting |
Indicador para especificar si la máquina se debe reiniciar y si se requiere para finalizar la instalación de actualizaciones en el sistema operativo invitado. Los valores aceptables son: IfRequired, NeverReboot, AlwaysReboot . |
windowsParameters |
Opciones de parámetros para la actualización del sistema operativo invitado en máquinas virtuales de Azure que ejecutan un sistema operativo compatible con Microsoft Windows Server. |
windowsParameters - classificationsToInclude |
Lista de categorías o clasificaciones que se van a usar para seleccionar las actualizaciones que se van a instalar en la máquina. Los valores aceptables son: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Updates |
windowsParameters - kbNumbersToInclude |
Lista de identificadores de KB de Windows Update que se deben instalar. Se instalarán todas las actualizaciones que pertenecen a las clasificaciones proporcionadas en la lista classificationsToInclude . kbNumbersToInclude es una lista opcional de KB específicos que se van a instalar además de las clasificaciones. Por ejemplo: 1234 |
windowsParameters - kbNumbersToExclude |
Lista de identificadores de KB de Windows Update que no se deben instalar. Este parámetro invalida windowsParameters - classificationsToInclude , lo que significa que no se instalará el identificador de KB de Windows Update especificado aquí aunque pertenezca a la clasificación proporcionada en el parámetro classificationsToInclude . |
maxPatchPublishDate |
Se usa para instalar revisiones publicadas en la fecha máxima de publicación indicada o con anterioridad a esta. |
linuxParameters |
Opciones de parámetros para la actualización del sistema operativo invitado en máquinas virtuales de Azure que ejecutan un sistema operativo con Linux Server. |
linuxParameters - classificationsToInclude |
Lista de categorías o clasificaciones que se van a usar para seleccionar las actualizaciones que se van a instalar en la máquina. Los valores aceptables son: Critical, Security, Other |
linuxParameters - packageNameMasksToInclude |
Lista de paquetes de Linux que se deben instalar. Se instalarán todas las actualizaciones que pertenecen a las clasificaciones proporcionadas en la lista classificationsToInclude . packageNameMasksToInclude es una lista opcional de los nombres de los paquetes que se van a instalar además de las clasificaciones. Por ejemplo: mysql, libc=1.0.1.1, kernel* |
linuxParameters - packageNameMasksToExclude |
Lista de actualizaciones que no se deben instalar. Este parámetro invalida linuxParameters - packageNameMasksToExclude , lo que significa que no se instalará el paquete especificado aquí aunque pertenezca a la clasificación proporcionada en el parámetro classificationsToInclude . |
Para especificar la solicitud POST, puede usar la siguiente llamada a la API REST de Azure con parámetros y valores válidos.
POST on 'subscriptions/{subscriptionId}/resourceGroups/acmedemo/providers/Microsoft.Compute/virtualMachines/ameacr/installPatches?api-version=2020-12-01
{
"maximumDuration": "PT120M",
"rebootSetting": "IfRequired",
"windowsParameters": {
"classificationsToInclude": [
"Security",
"UpdateRollup",
"FeaturePack",
"ServicePack"
],
"kbNumbersToInclude": [
"11111111111",
"22222222222222"
],
"kbNumbersToExclude": [
"333333333333",
"55555555555"
]
}
}'
Creación de una programación de la configuración de mantenimiento
Para crear una programación de la configuración de mantenimiento, especifique la siguiente solicitud PUT:
PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`
Cuerpo de la solicitud
En la tabla siguiente se describen los elementos del cuerpo de la solicitud:
Propiedad | Descripción |
---|---|
id |
Identificador completamente calificado del recurso |
location |
Obtiene o establece la ubicación del recurso |
name |
Nombre del recurso |
properties.extensionProperties |
Obtiene o establece el valor de extensionProperties de maintenanceConfiguration |
properties.maintenanceScope |
Obtiene o establece maintenanceScope en la configuración |
properties.maintenanceWindow.duration |
Duración de la ventana de mantenimiento en formato HH:MM. Si no se proporciona, se usará el valor predeterminado según el ámbito de mantenimiento proporcionado. Ejemplo: 05:00. |
properties.maintenanceWindow.expirationDateTime |
Fecha de expiración en vigor de la ventana de mantenimiento en formato AAAA-MM-DD hh:mm. La ventana se crea en la zona horaria proporcionada y se ajusta al horario de verano según esa zona horaria. La fecha de expiración debe establecerse en una fecha futura. Si no se proporciona, se establece en el valor máximo de fecha y hora: 31-12-9999 23:59:59. |
properties.maintenanceWindow.recurEvery |
Frecuencia a la que se espera que se repita una ventana de mantenimiento. La frecuencia puede expresarse como programaciones diarias, semanales o mensuales. Las programaciones diarias tienen el formato recurEvery: [Frecuencia como un número entero][«Día(s)»]. Si no se proporciona ninguna frecuencia, la frecuencia predeterminada es 1. Ejemplos de programación diaria son recurEvery: Day, recurEvery: 3Days. Las programaciones semanales tienen el formato recurEvery: [Frecuencia como un número entero][«Semana(s)»] [Lista opcional separada por comas de los días laborables de lunes a domingo]. Ejemplos de programación semanal son recurEvery: 3Weeks, recurEvery: Week Saturday, Sunday. Las programaciones mensuales tienen el formato [Frecuencia como un número entero][«Mes(es)»] [Lista separada por comas de los días del mes] o [Frecuencia como un número entero][«Mes(es)»] [Día del mes (Primero, Segundo, Tercero, Cuarto, Último)] [Día de la semana de lunes a domingo]. Ejemplos de programación mensual son recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday. |
properties.maintenanceWindow.startDateTime |
Fecha de inicio en vigor de la ventana de mantenimiento en formato AAAA-MM-DD hh:mm. La fecha de inicio se puede establecer en la fecha actual o en una fecha futura. La ventana se creará en la zona horaria proporcionada y se ajustará al horario de verano según esa zona horaria. |
properties.maintenanceWindow.timeZone |
Nombre de la zona horaria. La lista de zonas horarias se puede obtener ejecutando [System.TimeZoneInfo]:GetSystemTimeZones() en PowerShell. Ejemplo: hora estándar del Pacífico, hora universal coordinada, hora estándar de Europa, hora estándar de Corea, Cen. Hora estándar de Australia. |
properties.namespace |
Obtiene o establece el espacio de nombres del recurso |
properties.visibility |
Obtiene o establece la visibilidad de la configuración. El valor predeterminado es «Personalizado» |
systemData |
Metadatos de Azure Resource Manager que contienen información sobre los valores de createdBy y modifiedBy. |
tags |
Obtiene o establece las etiquetas del recurso |
type |
Tipo de recurso |
Para especificar la solicitud POST, puede usar la siguiente llamada a la API REST de Azure con parámetros y valores válidos.
PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestAdv2?api-version=2021-09-01-preview
{
"location": "eastus2euap",
"properties": {
"namespace": null,
"extensionProperties": {
"InGuestPatchMode" : "User"
},
"maintenanceScope": "InGuestPatch",
"maintenanceWindow": {
"startDateTime": "2021-08-21 01:18",
"expirationDateTime": "2221-05-19 03:30",
"duration": "01:30",
"timeZone": "India Standard Time",
"recurEvery": "Day"
},
"visibility": "Custom",
"installPatches": {
"rebootSetting": "IfRequired",
"windowsParameters": {
"classificationsToInclude": [
"Security",
"Critical",
"UpdateRollup"
]
},
"linuxParameters": {
"classificationsToInclude": [
"Other"
]
}
}
}
}'
Asociación de una máquina virtual con una programación
Para asociar una máquina virtual con una programación de la configuración de mantenimiento, especifique la siguiente solicitud PUT:
PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Para especificar la solicitud PUT, puede usar la siguiente llamada a la API REST de Azure con parámetros y valores válidos.
PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview
{
"properties": {
"maintenanceConfigurationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestIntermediate2"
},
"location": "eastus2euap"
}'
Eliminación de la máquina de la programación
Para quitar una máquina de la programación, obtenga todos los nombres de asignación de configuración de la máquina que se crearon para asociar la máquina a la programación actual de Azure Resource Graph, como se muestra en la lista:
maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id
Después de obtener el nombre anterior, elimine la asignación de configuración siguiendo la solicitud DELETE:
DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Pasos siguientes
- Para ver los registros de implementación y evaluación de actualizaciones generados por el Administrador de actualizaciones, consulte los registros de consultas.
- Para solucionar problemas, vea Solución de problemas de Update Manager.