Enimbos.com
Close

Automatic Patching – Azure

En el procedimiento que desarrollamos a continuación se explicará el proceso a seguir para llevar a cabo la actualización automática de máquinas virtuales en Azure. A modo de resumen el proceso consiste en establecer una ventana en la que se puedan aplicar las actualizaciones sobre las máquinas, creándose antes un snapshot de seguridad de cada una de ellas para evitar cambios indeseados o errores en las nuevas actualizaciones, y que pueda recuperarse el estado anterior de la misma.

Creación de un perfil de update management

El primer paso que debemos ejecutar es crear una cuenta de automatización que nos permita definir un perfil de Update Management.

Accedemos a la sección de Automation Accounts en el portal de Azure y creamos uno nuevo.

Introducimos el nombre y el grupo de recursos que queramos utilizar. Una vez creada, entramos en la misma y accedemos a la pestaña Update management. Es importante que la cuenta se cree con Azure Run As account, para que posea los permisos necesarios de gestión de los recursos.

Para habilitar esta funcionalidad es necesario usar un workspace de Log Analytics. Podemos usar uno ya existente o crear uno nuevo que se asocia automáticamente a nuestra cuenta de automatización.

Estando ya habilitado, podemos añadir las máquinas virtuales sobre las cuales queramos gestionar las actualizaciones automáticas. Para ello, podemos añadirlas con Add Azure VMs, como se muestra a continuación.

En nuestro caso vamos a añadir dos máquinas virtuales con sistema operativo Windows y Ubuntu.

Con esta acción conseguiremos instalar en dichas máquinas el agente encargado de gestionar y aplicar las actualizaciones. Una vez listo el agente, que puede tardar varios minutos, podemos visualizar información sobre las actualizaciones en la pestaña de Update management en la propia máquina virtual.

Creación de un Runbook de backups previos a la actualización

Con el objetivo de evitar algún fallo indeseado con las nuevas actualizaciones aplicadas en las máquinas, será necesario incorporar un pre-script en la programación del proceso de actualización que permita crear un snapshot de los discos de la máquina afectada previamente.

Para ello, en la cuenta de automatización creada accedemos a la pestaña Runbook como se muestra.

El contenido del pre-script se encuentra en el siguiente archivo: prescript_snapshot

A modo de resumen, el pre-script obtiene una lista de las máquinas que se van a actualizar y obtiene sus datos, crea un snapshot para cada disco de la máquina y espera a que termine el proceso.

Podemos crear el Runbook pegando el contenido del pre-script en el editor de texto del propio portal de Azure, o podemos importarlo si hemos convertido previamente el contenido a un archivo de texto con la extensión .ps1. En cualquiera de los casos, en el tipo de Runbook debe especificarse PowerShell.

Una vez creado o importado tenemos que publicarlo. Para ello, entramos en la edición y elegimos Publish.

Una vez publicado, necesitamos habilitar algunos módulos en la cuenta de automatización de las que hace uso este script. Los módulos son:

  • profile
  • Compute
  • RecoveryServices
  • RecoveryServices.Backup

Primero debemos importar el primero de ellos, ya que es del que dependen los demás. Para ello accedemos a la pestaña Modules gallery de la cuenta y los importamos.

Una vez importados estos módulos, en su pestaña correspondiente deberán aparecer.

Creación de un Runbook de borrado de snapshot

En el caso de que se quiera eliminar los snapshots creados por el pre-script cuando cumplan una antigüedad específica es posible configurar un segundo Runbook que ejecute este proceso y programarlo.

El proceso de creación es el mismo que el explicado en el punto anterior para el pre-script. El contenido se encuentra en el siguiente archivo: remove_snapshot

El script de borrado se encargará de borrar todos aquellos snapshots que contengan un tag creado por el pre-script, en este caso RemoveSnapshotUpdate, y que posea una antigüedad mayor a 48 horas (Es posible modificar este script para modificar este valor). Es importante no aplicar este tag a ningún otro recurso para evitar su eliminación.

Una vez publicado, podemos programar su ejecución en la pestaña Schedules del propio Runbook.

En este caso se ha especificado una ejecución mensual recurrente el tercer sábado de cada mes, pero puede configurarse en función de las necesidades.

 

Creación de una ventana de actualización

En la cuenta de automatización podemos programar una ventana para que se instalen las actualizaciones en las máquinas incluidas previamente.

En el apartado Update management, en la pestaña Schedule update deployment podemos configurar dicha ventana.


Podemos seleccionar grupos de máquinas en función de tags, pero en este caso mostraremos el ejemplo de una máquina Windows.

Podemos especificar el tipo de actualizaciones a aplicar, en este caso optamos por las de seguridad y las críticas.

Es posible incluir o excluir algunas actualizaciones específicas en el apartado de Include/exclude updates. En Schedule settings se configurará cuando queremos que se ejecute la ventana.

En este ejemplo concreto se ha especificado que la ventana de actualizaciones se ejecute todos los meses el segundo sábado, antes del script de borrado de snapshots en caso de que lo hallamos incluido.

En el apartado de Pre-scripts + Post-script seleccionamos el pre-script que añadimos al comienzo y seleccionamos que su tipo correspondiente.

Por último, es importante establecer una duración de la ventana suficiente, por eso es recomendable establecer algún valor entre 30 y 360 minutos.

Related Posts