Cerrar
InicioAzureMicrosoft Azure: Gestión y Administración de Imágenes para Windows Virtual Desktop

Microsoft Azure: Gestión y Administración de Imágenes para Windows Virtual Desktop

A buen seguro que, si estáis trabajando con Azure y más concretamente con WVD, hayáis tenido la necesidad o idea de disponer una “maqueta” de servidor para desplegar de forma rápida. Cuando trabajamos con entornos WVD sobre todo, surge la necesidad de ir actualizando el software de las diferentes máquinas virtuales y probarlas antes de llevarlas a producción. Además, una vez preparadas queremos tener la posibilidad de desplegar nuevos hosts de forma automática y con una plantilla correctamente probada y actualizada.

Para esto en Azure contamos con diferentes opciones, pero la principal por decirlo de alguna forma, son las Galerías de imágenes compartidas. Las galerías de imágenes compartidas no permiten crear una estructura y organización de nuestras imágenes, además nos permiten:

  • Replicar globalmente las imágenes
  • Control de versiones
  • Compartir imágenes entre suscripciones
  • Etc..

Aquí os dejo un enlace donde podéis documentaros al máximo en cuanto a las galerías de imágenes compartidas: Información general de Shared Image Galleries porque yo me quería centrar en como configurar una plantilla (o varias), sus versiones y todo ello pensando en despliegues para WVD (Windows Virtual Desktop).

Antes de continuar, os muestro la infografía para hoy, donde muestro un pequeño esquema/proceso de como se tienen que crear, actualizar/optimizar, capturar y entregar las plantillas de máquinas virtuales:

La idea de este artículo, es describir el proceso que podemos llevar a cabo para desplegar nuevos hosts de sesión desde plantillas las cuales previamente hemos configurado y optimizado. El proceso es el siguiente:

  • Crear una máquina virtual
  • Instalar y actualizar el software necesario
  • Optimizar el rendimiento lo máximo posible
  • Crear una instantánea (snapshot)
  • Generalizar la máquina (sysprep)
  • Capturarla
  • Desplegarla

Habrá pasos que obviaré describir, por sencillez o porque los he comentado en alguna otra ocasión, como por ejemplo la creación de una máquina virtual. Cuento que todos sabemos como crear una servidor virtual, etc… así voy a partir de que tenemos un Windows 10 Enterprise + Office 365 , puesto que es la versión que vamos a necesitar para desplegar en nuestro entorno de WVD:

Lo primero que haremos será instalar todas las actualizaciones disponibles:

Una vez que se haya actualizado por completo, vamos a cambiar el idioma del sistema operativo, puesto que el “problema” de esta imagen, es que está en inglés. Como nosotros queremos cambiarlo a Español, lo primero que haremos será conectamos vía RDP al equipo y nos descargamos las siguientes ISO según nuestra versión de Windows:

Son 3 imágenes ISO de entre 5 y 6GB, pero desde el servidor de Azure en cuestión de 5 minutos ya la tendremos descargadas:

Las ISOS las vamos a montar, puesto que vamos a necesitar ejecutar una serie de scripts de PowerShell los cuales  utilizarán los ficheros de idioma que tenemos en las ISOS que nos hemos descargado. Para montar las ISO, únicamente pulsamos con el botón secundario del ratón encima de cada ISO y pulsamos en Mount:

Lo que haremos será copiar el contenido que necesitamos dentro de una carpeta que nos podemos crear en C: mismamente, yo he creado PackIdiomas y copiado la siguiente información:

  • De la ISO del paquete de idiomas he copiado el contenido de LocalExperiencePacks  (la carpeta es-es) y de x64\langpacks el fichero del idioma que he querido instalar  (Español)
  • De la ISO de archivo ISO de característica previa petición  he copiado todos los ficheros del idioma que iba a instalar (Español), pera ello he buscado todos los ficheros que en su nombre contienen “es-es”
  • De la ISO de archivo ISO de aplicaciones de bandeja de entrada he copiado el contenido de la carpeta amd64fre

Nota: lo que tenéis que copiar viene descrito en el siguiente enlace: Adición de paquetes de idioma a una imagen multisesión de Windows 10

Una vez que tenemos todos los ficheros copiados en nuestro disco duro, debéis ejecutar el siguiente script de PowerShell (lo podéis descargar desde aquí Adición de paquetes de idioma a una imagen multisesión de Windows 10):

Y una vez se haya completado el proceso, debéis ejecutar este otro (lo podéis descargar desde aquí Adición de paquetes de idioma a una imagen multisesión de Windows 10):

Una vez ejecutados ambo scripts, tenemos que instalar el pack de idioma de Office, para ello ejecutamos cualquier aplicación de Office y vamos a File – Options y luego a Language y podemos ver ya la opción de descarga de Español , únicamente debemos pulsar en Install available:

Se nos iniciará un navegador web para que nos descarguemos el paquete de idioma seleccionado anteriormente, el cual debemos descargar y ejecutar:

Una vez lo hayamos ejecutado, se iniciará el proceso de instalación:

En cuestión de minutos tendremos instalado el pack de idioma de Office:

Pues con esto, ya tenemos el Windows en Español y también el Office:

Si ya tenemos todo el software que necesitamos instalado en la máquina virtual, lo siguiente es optimizarla lo máximo posible. Para esto, hay una estupenda herramienta que podéis descargar para ayudarnos a mejorar notablemente el rendimiento de nuestra máquina virtual: (Windows) Virtual Desktop Optimization Tool now available. Aquí os dejo la URL de descarga: Virtual-Desktop-Optimization-Tool, debéis pulsar en Code y luego en Download ZIP:

Esta herramienta es un script de PowerShell, el cual haciendo referencia a diferentes ficheros JSON deshabilitará ciertos servicios y características de Windows. Una vez descargado el fichero .zip, debemos descomprimirlo:

Como podéis apreciar, tiene varias carpetas que se corresponden con las versiones de Windows 10 soportadas. Antes de hacer nada, leeros con detenimiento el fichero README.md, ahí tenéis las instrucciones de uso y diferentes enlaces de interés que deberíais revisar antes de continuar con la ejecución del script:

Una de las recomendaciones más básicas es que reviséis los ficheros AppxPackages.json y Services.json:

Si editáis el AppxPackages.json veréis por ejemplo que se deshabilita la calculadora, pero si la queréis mantener tenéis que modificar el fichero AppxPackages.json en la sección que os muestro (cambiar el valor Disabled a Enabled):

Y más de lo mismo con el fichero Services.json, puesto que deshabilitará ciertos servicios entre ellos el encargado de gestionar las actualizaciones de Windows:

“Básicamente” lo que hará el script es deshabilitar todo lo que razonablemente no tiene sentido tener activo, lo que hará  que la cantidad de procesos activos se vea reducido. Antes de ejecutar el script, el equipo tiene 158 procesos activos:

La ejecución del script es muy sencillo: .\Win10_VirtualDesktop_Optimize.ps1 -WindowsVersion <version> -Verbose?

Una vez ejecutado, rápidamente empezará deshabilitando características de Windows que se consideran innecesarias (insisto, antes de ejecutar el script revisar los ficheros previamente comentados):

Fijaros que, sin aún haber reiniciado el equipo ahora tenemos “únicamente” 139 procesos en ejecución, pero una vez reiniciados tendremos unos 120:

Después de reiniciar, lo siguiente que haremos antes de generalizar (ejecución de SYSPREP) será crear una instantánea del servidor. Esto lo haremos antes de generalizar, porque como sabéis solo podemos ejecutar 8 veces el sysprep por imagen de Windows.

Si esta imagen la vamos a utilizar para desplegar más de 8 equipos, no podemos utilizar la misma imagen. Es por ello que, si hacemos primero una instantánea (snapshot), podemos crear a posterior un disco virtual y una máquina virtual desde dicho disco, entonces podemos volver a actualizar la imagen sin tener problema con el sysprep.

Pues bien, vamos a crear un snapshot del disco de sistema operativo de la máquina virtual:

Una vez que ya tenemos la instantánea de la máquina virtual, ya podemos generalizarlo  ejecutando sysprep con las siguientes opciones:

Como todos sabéis, sysprep elimina toda la información de seguridad y de la cuenta personal, luego prepara la máquina para usarse como imagen. Cuando se haya apagado el servidor virtual, debemos capturar la imagen desde el portal de Azure:

Durante el proceso de captura lo que haremos será crear la imagen que necesitamos para desplegarla N veces, pero antes debemos  ir cubriendo las diferentes opciones del asistente de creación de imagen (proceso al que llegamos después de pulsar en capturar en la máquina virtual).

El proceso lo he “invertido” un poco, de ahí que en este primer proceso únicamente crearemos la imagen pero no la tendremos en la galería de imágenes (es algo que quiero comentar más adelante). Debemos marcar la casilla Eliminar automáticamente esta máquina virtual después de crear la imagen, puesto que, una vez que capturamos la máquina virtual ya no es posible iniciarle ni hacer nada con ella.

Por defecto nos propone un nombre para la imagen, si nos vale, pulsamos en Revisar y crear:

Si está todo correcto, pulsamos en crear:

Pues ahora toca probarla, desde algún host pool que tengamos tratamos de añadir nuevos hosts de sesión y nos llevará al siguiente asistente. En la sección de imagen pulsamos en Ver todas las imágenes:

Ahora pulsamos en Mis elementos y en Mis imágenes y veremos la imagen que hemos creado anteriormente, la cual debemos seleccionar:

Continuamos con el proceso de creación de host de sesión ya con la elección de la imagen seleccionada:

Avanzamos en la definición de los hosts de sesión y pulsamos en Revisar y crear, si está todo correcto, pulsamos en Crear.

En cuestión de unos minutos ya tenemos nuestros hosts de sesión disponibles en nuestro host pool:

Si ahora queremos evolucionar la imagen, recordad que tenemos una instantánea del disco antes del sysprep, por lo que podemos utilizarlo para crear una nueva máquina virtual con todo el software instalado y realizar las modificaciones que necesitemos. Dicho esto, lo primero es crear un disco administrador partiendo de la instantánea. Una vez que accedemos a la instantánea pulsamos en Crear disco

Ahora definimos el grupo de recursos donde vamos a crear el disco, su nombre y tamaño, si todo está correcto pulsamos en Revisar y crear y luego Crear:

Una vez que tenemos el disco administrado, ya podemos crear una máquina virtual simplemente pulsando en Crear máquina virtual:

Ahora definimos la configuración de la máquina virtual, pero partiendo de que se creará utilizando como imagen el disco duro anteriormente seleccionado:

Revisamos la configuración y si está todo correcto pulsamos en Crear:

Y volvemos a tener una máquina virtual partiendo de la inicial (antes del sysprep), la cual podemos reconfigurar, actualizar o lo que queramos pero sin partir de una máquina nueva sin nuestras parametrizaciones previas:

Si ahora queremos disponer de una nueva imagen, haríamos lo mismo:

  • Crear instantánea
  • Generalizamos
  • Capturamos
  • Crear  nuevas máquinas virtuales

Con este proceso disponemos de imágenes de máquinas virtuales para desplegar en cualquier momento, pero sin las funcionalidades de las galerías de imágenes compartidas:

  • Replicar globalmente las imágenes
  • Control de versiones
  • Compartir imágenes entre suscripciones

Ahora que tenemos una imagen creada, podemos configurarla en una nueva Galería de Imágenes Compartidas. Esto lo haremos desde el Portal de Azure buscando en el Markeplace, lo haremos escribiendo Shared Image Gallery y pulsamos en Crear:

Elegimos o creamos un grupo de recursos para ubicar este recurso: 

Elegimos el nombre de la galería, es recomendable que su nombre se asocie con lo que que vayamos a almacenar dentro de la galería u pulsamos en Revisar y Crear:

En la sección de Revisar y crear revisamos que todo esté correcto y si es así, pulsamos en Crear:

Si recordáis, habíamos creado una imagen pero sin la galería, por lo que podemos agregarla a esta nueva galería, para ello pulsamos en Agregar nueva definición de imagen:

Elegimos la región y definimos un nombre para la definición de la imagen, además de cubrir el resto de campos (https://docs.microsoft.com/es-es/azure/virtual-machines/shared-image-galleries):

  • Sistema Operativo
  • Generación de VM
  • Estado del sistema operativo
  • Editor
  • Oferta
  • Sku

Todo estos datos nos servirán para identificar a posteriori el tipo de imagen que vamos a desplegar, yo esta vez no he sido nada original, pero lo suyo es definirlo correctamente:

Paso importante, que definamos la versión de la imagen a añadir, en Imagen de origen elegimos la imagen que habíamos creado anteriormente y el número de réplicas de la imagen:

Pulsamos en Revisar y crear, si está todo correcto, pulsamos en Crear:

Ahora tenemos nuestra galería de plantillas con nuestra primera definición de plantilla:

Y en la definición de plantilla tenemos la primera plantilla que habíamos creado y vinculado anteriormente. Si ahora queremos agregar otra versión, simplemente pulsamos en Agregar versión:

Ahora elegimos la imagen de la segunda imagen que habríamos realizado (siguiendo el proceso anteriormente descrito: generalizar, capturar, etc..) y definimos una nueva versión y elegimos la versión anterior:

Más de lo mismo en cuanto a la replicación de la imagen:

Y una vez que tengamos todo listo, pulsamos en Crear:

El proceso durará unos minutos, en función del tamaño de la imagen. Si accedemos a la definición de la imagen anteriormente creada, vemos que está en proceso de creación la versión que hemos agregado:

Aquí las tenemos, ambas versiones disponibles para ser utlizadas.

Como vemos es muy práctico el disponer de diferentes imágenes, puesto que ahora podríamos crear nuevos hosts de sesión para nuestro host pool y poder reemplazar máquinas más desactualizadas en el host pool (lo veremos en el próximo artículo).

He pasado por alto muchas cosas, pero bueno, mi idea era que se pudiera ver el proceso de Crear VM + Actualizar/Instalar + SnapShot + Generalizar + Captura + Crear VM.

Espero que os haya dado una visión global del proceso y servicio, pero en próximos artículos iremos profundizando más en este Servicio de Imágenes Compartidas.

Azure Backup: Optimi
Optimización RDP: I
NO HAY COMENTARIOS

DEJA UN COMENTARIO

Este sitio web utiliza cookies. Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra política de cookies. ACEPTAR

Aviso de cookies
Share This