Actualiza tus máquinas virtuales en Azure con Azure Updater Manager

En el artículo de hoy os voy a hacer una introducción sobre el servicio Azure Update Manager.

Este servicio nos va a ayudar en esa tarea tan poco gratificante pero tan necesaria, como es la de actualizar nuestras máquinas virtuales.

Antes de hablar de este servicio, os voy a hablar sobre otro servicio que actualmente existe también para realizar actualizaciones pero que NO debéis usar ahora mismo bajo ningún concepto.

No debéis usarlo porque a partir del 31 de Agosto de 2024 va a dejar de existir, es decir en menos de 2 meses. Este servicio se llama Update Management y en realidad no es un servicio independiente, sino que esta integrado dentro de Azure Automation Account y tiene dependencia con Log Analytics Agent.

En realidad, el que no se pueda usar este servicio a partir del 31 de agosto, viene porque en esa fecha Log Analytics Agent deja de existir (teniendo que migrar a Azure Monitor Agent). Por tanto, todo servicio/característica asociado con Log Analytics Agent muere también.

Para más información sobre como migrar Log Analytics Agent al nuevo Azure Monitor Agent, podéis ver la guía de migración oficial:

https://learn.microsoft.com/en-us/azure/azure-monitor/agents/azure-monitor-agent-migration


Ahora ya sí nos metemos en faena y vamos a hablar de Azure Update Manager. La definición de este servicio ofrecido por Microsoft (https://learn.microsoft.com/es-es/azure/update-manager/overview?tabs=azure-vms) es muy clara:

“Update Manager es un servicio unificado que ayuda a administrar y controlar las actualizaciones de todas las máquinas. Puede supervisar el cumplimiento de las actualizaciones de Windows y Linux en las implementaciones de Azure, en el entorno local y en otras plataformas en la nube desde un único panel. También puede usar Update Manager para realizar actualizaciones en tiempo real o programarlas dentro de una ventana de mantenimiento definida.”

Ahora veamos un ejemplo sencillo para ver como empezamos a usar Azure Update Manager.

En el ejemplo, tengo 2 máquinas virtuales de Azure:

  • 1 Máquina de Windows 2022
  • 1 Máquina de Red Hat 9.3

Lo que vamos a querer hacer con Azure Update Manager es:

  1. Cambiar la configuración de las actualizaciones de la máquina para que se instalen en unas horas específicas definidas por nosotros, y no automáticamente.

  2. Revisar si tengo actualizaciones pendientes en las dos máquinas.

  3. Si tengo actualizaciones pendientes, directamente instalarlas desde el portal de Azure.

  4. Configurar que periódicamente se revisen si tengo actualizaciones pendientes.

  5. Programar cuando se pueden instalar las actualizaciones sin necesidad de tener que instalarlas automáticamente.

Una vez claro que queremos hacer, vamos a ver los pasos a seguir para conseguirlo:

  1. Lo primero que hacemos es ir al portal de Azure usando la url https://portal.azure.com/

  2. Ahora buscamos Azure Update Manager y pulsamos:



  1. Una vez dentro, en el blade de la izquierda pulsamos en Machines:


  1. Ahora podéis ver las dos máquinas. Comentaros que no hay que hacer nada para que aparezcan las máquinas en Azure Update Manager:


  1. Ahora seleccionamos las dos máquinas:


  1. Ahora pulsamos en Settings -> Update Settings:



  2. Nos sale un mensaje informativo de la acción a realizar. Pulsamos en *Update settings:



  3. En Patch orchestation de la máquina de Windows cambio la opción de Windows automatic updates a Customer Managed Schedules. Yo quiero controlar cuando se instalen las actualizaciones y que no que se instalen, y sobre todo se reinicie la máquina sin ningún tipo de control.


  4. Pulsamos en Save.


  1. No sale un mensaje indicándonos que el cambio se realizó correctamente:



  1. Ahora vamos a buscar si hay actualizaciones en las 2 máquinas. Para ello seleccionamos las dos máquinas y pulsamos en Check for updates:



  2. Nos sale un mensaje. Se nos advierte, que ninguna operación de actualización se realizará en las máquinas, mientras la operación de comprobar actualizaciones que hemos mandado realizar este ejecutándose. Pulsamos en Assess now.



  1. Un mensaje nos aparecerá informándonos de la operación:



  1. Si sois desesperados como es mi caso (jajaja), pulsando en el botón Refresh empezaran a aparecer cosas:



  1. Ahora, nos saldrá un mensaje diciendo que se finalizó la comprobación de las actualizaciones de las 2 máquinas.



  1. Volvemos a Machines. Vemos en la columna Update status las actualizaciones que tenemos pendientes:



  2. Ahora vamos a pulsar sobre 80 pending updates updates de la máquina de Linux:



  3. Nos va a salir un listado de actualizaciones pendientes:



  1. Volvemos a Machines y pulsamos 3 pending updates de la máquina de Windows.



  1. Como en el caso de la máquina de Linux, podemos ver las actualizaciones pendientes de la máquina de Windows:



  1. Volvemos de nuevo al apartado Machines de Azure Update Manager. Vemos si están seleccionadas las máquinas (sino las tenemos ya seleccionadas). Ahora vamos a actualizar las dos máquinas pulsando en One- time update, de perdidos al río jaja.



  2. Nos sale un mensaje informativo. Pulsamos en Install Now.



  3. De nuevo, debemos de seleccionar las dos máquinas. Pulsamos en Next:



  4. En la parte de Updates, podemos seleccionar que actualizaciones instalar. Podemos seleccionar updates por KB ID como son las actualizaciones de sistemas Windows o por fecha de publicación etc… Pero para esta demo, yo he venido a jugar y voy a instalar todos las actualizaciones jajaja.

    Pulsamos en Next:



  1. En la parte de Properties, elegimos la opción de si permitimos reiniciar, no reiniciar o solo reiniciar cuando sea necesario.



  1. Después podemos configurar la ventana de tiempo para poder instalar estas actualizaciones. Por defecto esta marcado en 235 minutos, que es el máximo permitido, siendo el mínimo en 60 minutos.



  2. Pulsamos en Next:



  1. Por último, vemos un resumen de lo que se va a instalar. Pulsamos en Install.



  1. Un mensaje nos indica que la operación de instalación esta en progreso. Se nos indica que podemos ver el estado de la instalación desde el apartado History de Azure Update Manager.

  2. Si vamos efectivamente al apartado History, vemos como Azure Update Manager esta haciendo su magia:

    Nota: Filtrar por Update operation con el valor Install Updates para ver las operaciones de instalación de actualizaciones.



  3. Después de un rato (dependiendo de cuanto haya que instalar), veremos que se instalaron correctamente las actualizaciones:



  4. Si por ejemplo, entramos a la máquina de Windows vemos que efectivamente se han instalado las 3 actualizaciones:



  5. Vale, ahora vamos a ver la forma de comprobar las actualizaciones pendientes de las máquinas, pero sin necesidad de tener que hacerlo de forma manual. Para ello, volvemos a pulsar en Machines dentro de Azure Update Manager.



  1. Seleccionamos las máquinas. Luego pulsamos en Settings –> Update settings



  2. De nuevo nos sale un mensaje advirtiendo que vamos a configurar ciertas configuraciones. Pulsamos en Update settings.



  1. En la columna Periodic assessment, ponemos el valor Enable. De esta manera cada 24 horas se comprobara si hay actualizaciones pendientes. Pulsamos en Save para guardar los cambios.

NOTA IMPORTANTE: Sobre lo configurar que se compruebe las actualizaciones pendientes de cada máquina. Esta forma que explico aquí para configurarlas esta bien con pocas máquinas. El tema cambia cuando tenemos muchas máquinas o estamos continuamente creando nuevas máquinas. Una forma mejor es hacerlo con muchas máquinas es hacerlo a través de Azure Policy , de esta manera lo haríamos de forma automatizada tal y como se explica en el siguiente enlace:

https://learn.microsoft.com/en-us/azure/update-manager/tutorial-assessment-deployment-using-policy

  1. Y ya por último, vamos a configurar una ventana de actualización para instalar las actualizaciones. Para ello vamos a Machines:



  1. Una vez dentro seleccionamos las 2 máquinas y pulsamos en Schedule updates.



  1. Una vez dentro configuramos el nombre de la configuración y en que resource group se va a crear. Cosas importantes en esta ventana son el Maintenance scope y el Reboot setting. Dejamos la configuración por defecto:



  2. Ahora vamos a configurar cuando queremos que se instalen las actualizaciones. Para ello pulsamos en Add Schedule.

  3. Vamos a realizar la siguiente configuración:

    • Desde el 7 de Julio de 2024 va a estar operativa esta configuración.

    • La ventana de tiempo disponible para instalar actualizaciones va a ser de 2 horas.

    • Esta se va a ejecutar el primer sábado de cada mes, es decir una vez al mes.

    • Esta configuración no tiene fecha de fin.

      Pulsamos en Save :



    1. Sobre el resto de configuraciones, no me voy a meter porque sino estáis hasta mañana leyendo el artículo jajaja. Pulsamos en Review + create:

  4. Para finalizar la configuración, pulsamos en Create:



    NOTA IMPORTANTE: Al igual que ocurre con la configuración de comprobar si hay actualizaciones pendientes, cuando tenéis muchas máquinas o estáis constantemente creando nuevas máquinas, podéis hacer uso de Azure Policy- De esta manera configuración se haría de manera automatizada. Para ver como hacer esta misma configuración con Azure Policy, ir al siguiente enlace:

    https://learn.microsoft.com/en-us/azure/update-manager/scheduled-patching?tabs=schedule-updates-single-machine%2Cschedule-updates-scale-overview%2Cwindows-maintenance#onboard-to-schedule-by-using-azure-policy

    También, sino queréis usar Azure Policy por lo que sea y no queréis usar el Portal de Azure y hacer las cosas bien, por ejemplo usando Terraform, tenéis disponible el siguiente resource para poder hacerlo en Terraform:

    https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/maintenance_configuration.html

Respecto al coste de este servicio, comentaros dos cosas:

  • Para máquinas en Azure es TOTALMENTE GRATUITO.

  • Para máquinas en On-Premise, u otros proveedores de Cloud necesitaríamos hacer uso de Azure Arc con un coste de 5€ por máquina. Pero por ejemplo, si tenéis una máquina que no es de Azure con Microsoft Defender for Servers Plan 2, este servicio es totalmente gratuito.

Para más información y ver todas las combinaciones posibles sobre el coste del servicio, ir al siguiente enlace:

https://azure.microsoft.com/en-us/pricing/details/azure-update-management-center/

Soy consciente de que acabo de hacer el post más largo realizado en este blog jajaja.

Como podéis ver es un tema muy amplio este de las actualizaciones de las máquinas virtuales. Realmente creo que daría fácilmente para un libro. Sé que me he dejado muchas cosas del servicio por explicar, pero espero que esta introducción al servicio os anime a investigarlo y a usarlo.

También recordad que si alguno de vosotros, estáis usando el servicio de Update Management , esté va a dejar de ser válido el 31 de Agosto de 2024, es decir en menos de dos meses.

Saludos y espero no haberos aburrido.