Prepara imágenes de máquinas virtuales en Azure con la Galería de imágenes! Mejor tarde que nunca!

Hola, bueno si has llegado hasta aqui supongo que te interesa el tema, este proceso describe como crear una imagen de una máquina virtual en ejecución tanto Linux como Windows. Empecemos pues …

  • En primer lugar es importante recordar que el proceso de crear y desplegar una imagen en Azure puede causar al igual que en una red fisica, la colisión de varias máquinas, tanto en configuraciones de IPs y tarjetas de red, como en nombres de maquinas conviviendo en la misma red. Ten esto en cuenta cuando despliegues tus nuevas imágenes.
  • En este articulo intentaré cubrir las principales tareas que pueden darse en este proceso y que incluyen:
    • Sysprep y generalizar la máquina virtual
    • Crear una imagen personalizada desde una máquina virtual ya existente.
    • Crear una nueva máquina virtual desde una imagen personalizada
    • Listar todas las imagenes existentes en una suscripcion de Azure
    • Eliminar una imagen personalizada

Consideraciones, como mencionaba al principio, hemos de tener en cuenta el sistema operativo y la ubicación para el despliegue de nuestras VMs, asi pues consideraremos dos formas de crear nuestra imagen (Generalizada / Especializada) :

  • Generalizada: [Sysprep y creación de imagen] – Este proceso se recomienda para maquinas Windows, donde crearemos una version generalizada del SO y la utilizaremos para crear nuestras nuevas máquinas clonadas. Este método tiene como ventaja la posibilidad de clonar las VMs pero utilizar nuevos nombres de usuario, contraseñas, nombre de máquina, etc. De forma que nuestras copias puedan convivir en la misma red.
    En este caso la máquina original quedará inutilizada para su proposito inicial, pero podremos desplegar y configurar nuevas máquinas que la sustituyan, esto se debe a que despues del proceso de generalización la VM original ha de permanecer detenida para la creación de las imagenes correspondientes.
  • Especializada: [Capturar un imagen desde una VM] – Este método permite la operación anterior de clonado o creación de la imagen, más la posibilidad de capturar una imagen directa de una máquina en ejecución y crear nuevas copias. En este caso las máquinas serán copias exactas del original incluyendo el contenido de los discos, nombre de máquina, etc.
    Estos detalles hacen dificil que la misma máquina pueda co-existir en una red con otro de sus clones, en el caso de equipos Linux esto es más facil de conseguir y bastará con cambiar el nombre de la VM y asegurarnos de obtener las IPs de red a través de DHCP, por tanto se recomienda para este tipo de SO.

Para completar el proceso, de creación de la Galería de Imágenes podremos utilizar el portal de azure, Azure Cli, o el modulo Az de windows Powershell. Inicialmente veamos Azure Cli, puedes utilizar la version web para crear la galeria inicial de imágenes.

az sig create –resource-group myGalleryRG –gallery-name myGallery

From <https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-custom-images> ]

Una vez creada la Galería comenzaremos a crear nuetras propias definiciones de imágenes. Una galería por tanto contendrá una serie de definiciones que representarán los distintos tipos de imágenes que estarán disponibles, por ejemplo clasificándolas por su funcionalidad, tipo, etc.

  1. Obtendremos el ID de la máquina a clonar:
    az vm get-instance-view -g myVmRG -n myVmName –query id
  2. Crearemos nuestra definición de imagen:
    az sig image-definition create \ –resource-group myGalleryRG \ –gallery-name myGallery \ –gallery-image-definition myImageDefinition \ –publisher Azure \ –offer WebAppsServer \ –sku Standard \ –os-type Windows \ –os-state generalized

From <https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-custom-images#create-an-image-definition>

Como siguiente paso tras la definición de nuestra imagen, procedermos a capturar la máquina de origen, para esto podremos aplicar las siguientes recomendaciones. Con respecto al proceso de generalización, puedes ver las opciones en los siguientes enlaces:

* Instrucciones para Windows: https://azure.microsoft.com/documentation/articles/virtual-machines-windows-upload-image/
* Instrucciones para Linux: https://azure.microsoft.com/documentation/articles/virtual-machines-linux-capture-image/

Recordarte que en el caso de VMs Linux, puedes prescindir del proceso de generalización, siempre y cuando cambies el nombre y las IPs asociadas a los clones desplegados.
Una vez completada la generalización de nuestra máquina original, tendremos dos posibles estados:

1. VM apagada, en estado generalizado, normalmente máquinas Windows.
2. VM encendida, sin generalizar (especializada), normalmente máquinas Linux

Podremos proceder por tanto a la captura de la primera versión de nuestra definición de imagen. Según este principio, crearemos nuevas versiones de la imagen, siguiendo por ejemplo la evolución del software o funcionalidad de la máquina clonada.

az sig image-version create \ –resource-group myGalleryRG \ –gallery-name myGallery \ –gallery-image-definition myImageDefinition\ –gallery-image-version 1.0.0 \ –target-regions “westeurope=1” “westeurope=2” “westeurope=3=standard_zrs” \ –replica-count 2 \ –managed-image “/subscriptions/SubscriptionID/resourceGroups/myVmRG/providers/Microsoft.Compute/virtualMachines/myVm

En este punto habremos generado una definición de imagen desde la que podremos desplegar nuestros clones, mencionar que en este caso, ya que las maquinas han de estar configuradas para su alta disponibilidad, se dará la posibilidad de elegir la zona de despliegue en la creación de el/los clones de la máquina virtual.

Desde el portal de Azure, en la sección de definición de la imagen se podrá a partir de ahora, crear una nueva máquina basada en una de las plantillas mencionadas, simplemente con seleccionar la opción “Nueva VM”

Espero escribir nuevas partes de este artículo para incluir el proceso de despliegue utilizando el Cli de Azure y posteriormente utilizando plantillas ARM e imágenes administradas como las que acabamos de crear.

Leave a Reply

Your email address will not be published. Required fields are marked *