Compartir a través de


Administración mediante programación de actualizaciones para servidores habilitados para Azure Arc

En este artículo se explica el proceso de usar la API REST de Azure para desencadenar una evaluación y una implementación de actualizaciones en sus servidores habilitados para Azure Arc 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 máquinas virtuales de Azure, consulte Cómo trabajar mediante programación con máquinas virtuales de Azure.

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 servidores habilitados para Azure Arc 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 los servidores habilitados para Azure Arc, especifique la siguiente solicitud POST:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview`
{
}

Para especificar la solicitud POST, puede usar el comando az rest de la CLI de Azure.

az rest --method post --url https://management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview --body @body.json

Para la versión 2020-08-15, el formato del cuerpo de la solicitud es el siguiente:

{
}

Implementación de actualizaciones

Para desencadenar una implementación de actualizaciones en sus servidores habilitados para Azure Arc, especifique la siguiente solicitud POST:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview`

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 en minutos que puede tardar la operación de actualización del sistema operativo. Debe ser una cadena de duración compatible con ISO 8601 como, por ejemplo, PT100M (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 SO huésped en una máquina que ejecuta un sistema operativo Microsoft Windows Server compatible.
windowsParameters - classificationsToInclude Lista de categorías o clasificaciones de las actualizaciones del sistema operativo que se deben aplicar, según lo que admite y proporciona el sistema operativo Windows Server. Los valores aceptables son: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update
windowsParameters - kbNumbersToInclude Lista de identificadores de KB de Windows Update que están disponibles para la máquina y que se deben instalar. Si ha incluido algún elemento «classificationsToInclude», se instalarán los KB disponibles en la categoría. «kbNumbersToInclude» es una opción para proporcionar una lista de identificadores de KB específicos por encima de los que desea instalar. Por ejemplo: 1234
windowsParameters - kbNumbersToExclude Lista de identificadores de KB de Windows Update que están disponibles para la máquina y que no se deben instalar. Si ha incluido algún elemento «classificationsToInclude», se instalarán los KB disponibles en la categoría. 'kbNumbersToExclude' es una opción para proporcionar una lista de identificadores de KB específicos que desea asegurarse de que no se instalen. Por ejemplo: 5678
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ámetro para la actualización del sistema operativo invitado cuando la máquina ejecuta la distribución de Linux compatible
linuxParameters - classificationsToInclude Lista de categorías o clasificaciones de actualizaciones del sistema operativo que se van a aplicar, según admita y proporcione el administrador de paquetes del sistema operativo Linux usado. Los valores aceptables son: Critical, Security, Others. Para obtener más información, consulte Compatibilidad con el administrador de paquetes de Linux y el sistema operativo.
linuxParameters - packageNameMasksToInclude Lista de paquetes de Linux que están disponibles para la máquina y que deben instalarse. Si ha incluido algún elemento «classificationsToInclude», se instalarán los paquetes disponibles en la categoría. «packageNameMasksToInclude» es una opción para proporcionar una lista de paquetes específicos por encima de los que desea instalar. Por ejemplo: mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude Lista de paquetes de Linux que están disponibles para la máquina y no deben instalarse. Si ha incluido algún elemento «classificationsToInclude», se instalarán los paquetes disponibles en la categoría. «packageNameMasksToExclude» es una opción para proporcionar una lista de paquetes específicos que desea asegurarse de que no se instalen. Por ejemplo: mysql, libc=1.0.1.1, kernel*

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/subscriptionI/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview

{
        "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. Debe establecer la fecha de expiración en una fecha futura. Si no se proporciona, se establecerá en el valor máximo de fecha y hora: 9999-12-31 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. Puede dar formato a las programaciones diarias como 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. La programación semanal tiene 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. Puede dar formato a las programaciones mensuales como [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)»] [Semana del mes (Primera, Segunda, Tercera, Cuarta, Última)] [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