Gestionando capas de SO, plataforma, aplicaciones y usuario con Citrix App Layering

Citrix App Layering es una nueva solución de Citrix para diseñar nuestras capas de S.O., software o datos de usuario. En enero de 2017 Citrix adquirió Unidesk, con la finalidad de tener una herramienta que nos permita reducir el número de imágenes a mantener, tanto en entornos pool de desktops cómo en servidores RDHS. Dispondremos en capas separadas el SO, las herramientas y drivers que se necesiten, así como aislaremos cada app en distintas capas; que luego podremos asociar y entregar como nos interese, bien por usuario o por máquina VDA. Podremos tener una sola capa de nuestro Windows corporativo, que cuando necesitemos actualizar lo haremos una sola vez, y la desplegaremos al resto de imágenes.

 

Por último, y por raro que parezca, sí, App Layering está disponible para todas las ediciones de Citrix Virtual Apps and Desktops, aunque los Premium tendrán la posibilidad de añadir múltiples conexiones a distintos hipervisores/nube, podrán combinar tanto MCS como PVS y además usar Brokering de terceros, como por ejemplo VMware Horizon View.

 

Os dejo el orden que seguiremos en este documento:

 

 

Desplegando el appliance Citrix Enterprise Layer Manager

 


Lo primero de todo, será descargar el appliance que nos ofrece Citrix desde su web oficial: https://www.citrix.com/downloads/citrix-app-layering/
El appliance lo tenemos disponible para Citrix Hypervisor (o XenServer), Microsoft Hyper-V, Microsoft Azure, Nutanix AHV o VMware vSphere.
En este caso usaremos vSphere, importamos la plantilla OVA descargada en vCenter como es habitual.

 


Confirmamos que estamos importando Citrix Enterprise Layer Manager (ELM), actualmente tenemos la versión 19.11 y nos indica que con disco thin pesará aproximadamente 9,7GB de disco y en formato thick 330GB.

Así que en siguientes pasos indicaremos en qué host o clúster desplegaremos el appliance y el formato del disco,

 

 

Seleccionaremos el interfaz de red de este appliance a qué red virtual se la conectaremos y si queremos direccionamiento IP estático o dinámico, aúnque esto lo podremos cambiar más adelante.

 


Confirmamos que todo es correcto en el resumen de la importación de la plantilla OVF, y pulsamos en “Finish” para comenzar a desplegarla.

 


Tras unos minutos, al finalizar, comprobaremos que el appliance se encenderá automáticamente.

 

Configuración básica de Citrix App Layering

Para comenzar la configuración base, empezaremos por la red. Abriremos la consola de la MV una vez esté arrancada.

Nos podremos loguear por defecto con el usuario administrator con contraseña Unidesk1

Nos saldrá un menú donde podremos, entre otros, configurar la red (pulsando ‘C’), la zona horaria (pulsando ‘T’) o los servidores de hora NTP (pulsando ‘N’).

 


Una vez ya dispone el appliance de una dirección IP, abriremos el navegador y accederemos a su URL.

Necesitaremos Microsoft Silverlight instalado.

Y nos logueamos con los credenciales predeterminados, igual que antes, administrator con contraseña Unidesk1

 


La primera vez que entremos, deberemos aceptar el acuerdo de licenciamiento. “I accept the Terms and Conditions”

“Done”,

 


A continuación nos saldrá un asistente que nos forzará a que cambiemos las contraseñas de los usuarios que usaremos para gestionar el appliance.

 


Deberemos cambiar la contraseña para el ‘administrator’ de la consola de administración ELM, la contraseña para el usuario ‘root’ del sistema del appliance y la contraseña para la herramienta de configuración.

 


Pulsamos sobre “Change Credentials” para aplicar los cambios.

 


“OK”, parece que todo fue correcto.

 


Nos da la bienvenida con un asistente donde nos indica los pasos que debemos seguir, donde primero configuraremos App Layering, seguidamente deberemos crear las capas que nos interesen para finalizar entregándolas a los usuarios o máquinas.

“Close”,

 


Si vamos a “System” > “Settings and Configuration”, tendremos varias cosas que podremos cambiar, interesante sería instalar el certificado que nos interese que presente, en vez del autocreado que viene por defecto.

Pulsaremos en “Edit” de la sección “Network File Shares”.

 


Aquí deberemos añadir una dirección de una carpeta compartida SMB con formato UNC. Indicamos el usuario con privilegios de acceso. Y pulsamos en “Test SMB File Share” & “Save”. Este usuario tendrá privilegios de al menos poder modificar y lo ideal es que este sea el usuario del servicio App Layering.

A este recurso también deben acceder el grupo de ‘Usuarios Autenticados’ como lectura.

 


Lo siguiente será añadir nuestra conexión al gestor de nuestra capa virtual, en este caso que usamos VMware, añadiremos una conexión a nuestro servidor vCenter. Desde “System” > “Connection” > “Add Connection Config”.

 


Como vemos, podemos añadir multitud de entornos, en este caso particular conectaremos contra “VMware vSphere”,

 


Indicamos un nombre a la conexión y configuramos los datos de acceso, como es un usuario con privilegios administrativos en la plataforma virtual. Verificamos con “Check credentials”.

Seleccionamos el Datacenter, el tamaño máximo del disco de caché, seleccionamos el host, el datastore y la red donde se crearán las máquinas que generemos para App Layering.

Y marcamos “Offload Compositing”.

Como siempre, validamos con “Test” y grabamos los cambios con “Save”.

 


Deberemos unir ELM a nuestro Directorio Activo si queremos asignar capas a usuarios o para una administración delegada usando usuarios del dominio.

Desde “Users” > “Directory Service” > “Create Directory Junction”.

 


Indicamos un nombre a la conexión con nuestro AD, indicamos un controlador de dominio y especificaremos si usaremos LDAP mediante el 389tcp o LDAPS mediante 636tcp. “Test Connection”,

 


Siguiendo el asistente, deberemos especificar una cuenta que tenga privilegios de leer en nuestro servicio de Directorio. Especificaremos la ruta DN correcta de la cuenta o directamente en formato usuario@dominio.eso

“Test Authentication”,

 


Indicamos la Base DN, o sea cual será la ruta que contenga los usuarios/grupos que nos interese, pudiendo especificar una OU concreta o todo el árbol.

“Test Base DN”,

 


No es necesario modificar ningún mapeo de atributos de los objetos del AD. Seguimos con el asistente,

 


Confirmamos que todo es correcto, pulsamos en “Create Directory Junction”.

 


Podemos finalmente delegar permisos en usuarios del Directorio Activo, para ello, asignaremos privilegios de administrador a alguna cuenta que queramos usar. Desde “Users” > “Directory”, seleccionamos el usuario o grupo y pulsamos en “Edit Properties”.

 


Podremos asignarle el rol de Administrador, de Sólo Lectura o granularmente darle accesos a lo que necesite, sea gestión de las capas de app, del usuario, gestionar plantillas de imagen, de SO, de plataforma y, adicionalmente, poder publicarlas.

 

Instalación de Citrix App Layering Agent


El Agente de App Layering debe instalarse en los servidores que necesiten comunicarse con ELM, normalmente si disponemos de Citrix Provisioning, deberemos instalarlo en uno de los servidores PVS.

“Next” para comenzar la instalación.

 


Aceptamos los términos de las condiciones, “I accept the terms in the license agreement”

“Next”,

 


Indicamos el puerto de comunicación con el Agente, por defecto 8016tcp, “Next”,

 


Pulsamos sobre “Install” para realizar la instalación del Agente,

 


… esperamos unos segundos…

 


Debemos registrarnos contra ELM, indicamos su FQDN o dirección IP y un usuario con privilegios.

“Register”,

 

“Finish”,

Finalmente, si este fuese un servidor de PVS, deberíamos añadir el conector desde la consola ELM.

 

Creando una capa de SO

 

La capa de SO es la capa de menor prioridad, sobre ella se acoplarán el resto de capas que nos interese. Debemos elegir un SO Servidor soportado (2008 R2 a 2019) o un SO Desktop (7 a 10). En la MV que será la futura capa de SO, instalaremos lo más limpio posible el SO, actualizaremos el SO y limpiaremos de temporales y demás. Cuidaremos esta capa de SO, ya que será la que utilicen todos nuestros usuarios.

 

Tendremos que tener en cuenta numerosas condiciones en esta MV, debe usar VMXNET3, BIOS (no UEFI), no deberá tener ningún software adicional instalado, únicamente las VMware Tools, ni siquiera estar unido a Directorio Activo. Y en la configuración de red, la dirección IP debe estar en modo DHCP. Si esta máquina será RDSH aprovecharemos a dejarlo habilitado.

 

También eliminaremos todas las Apps del Microsoft Store (si es que usamos SO Desktop, mediante la utilidad RemoveStoreApp.cmd), deshabilitaremos Windows Defender y el firewall de Windows, así como IPv6 si usaremos PVS. Y al finalizar será recomendable ejecutar Citrix Optimizer.

 

Posteriormente, en la capa de Plataforma sí instalaremos el software que necesitemos como puedan ser el VDA, o PVS Target Device, drivers de NVIDIA, Citrix Workspace o unirlo a dominio.

 

Instalando Citrix App Layering Image Preparation Utility

 


Tras tener el SO listo y libre de reinicios, extraeremos Citrix App Layering Gold Image Tools en C:\Windows\Setup\scripts\

“Install”,

 


Pulsaremos “Use KMS” si disponemos de un servidor KMS para las activaciones de los Windows, o en su defecto “Do not use KMS”.

 


En la carpeta que nos ha extraido Citrix App Layering Gold Image Tools todos los scripts y herramientas, deberemos instalar Citrix App Layering Image Preparation Utility, para ello ejecutaremos “setup_x64”.

 


Por cierto, las actualizaciones de Windows también deben estar deshabilitadas en esta máquina, bien por GPO o configuración local.

Será cuando nosotros digamos cuando la MV se actualizará; por ejemplo, a futuro, cuando presentemos nuevas versiones de esta capa de SO a nuestros usuarios.

“Next”,

 


“Next” para comenzar la instalación de Citrix App Layering Image Preparation Utility.

 


No será necesario trabajar con archivos de respuesta desatendida de Windows, por lo que podremos omitir este paso y continuar,

“Next”,

 


… esperamos unos segundos mientras se instala…

 


Perfecto, instalación finalizada, pulsamos en “Finish”.

 

Creando la capa de SO

 


Para crear capas de Sistema Operativo, desde la consola de administración de ELM iremos a “Layers” > “OS Layers” > “Create OS Layer”.

 


Debemos dar un nombre a la capa de SO, además de una descripción y comenzar un versionado, 1.0 por ejemplo. En este caso crearemos una capa para Windows 2019 Standard ES, y con 40GB de tamaño máximo de la capa nos será suficiente.

Seguimos con el asistente,

 


Conectamos contra nuestro servidor vCenter Server para poder importar el SO de la MV que seleccionemos a continuación,

 


Pulsamos sobre “Select Virtual Machine” para elegir el disco de la MV que vamos a importar.

 


Mediante el vSphere Connector iremos viajando hasta seleccionar la MV de la cual queremos importar su Sistema Operativo, en mi caso es una MV llamada VDA-S00. “OK”,

 


Comprobaremos el que tenemos la máquina correctamente añadida, así como veremos el tamaño de su disco duro.
Continuamos con el asistente,

 


Podremos seleccionar un icono a esta capa de SO, será interesante asociarle el icono del SO que lleve para asociarla mejor.

Continuamos con el asistente,

 


Comprobamos en la vista resumen que todo es correcto y pulsamos sobre “Create Layer” para crear la capa de SO.

 


Comenzará a crear la capa de SO, en la vista inferior de Tasks podremos ver el progreso, esperamos un buen rato… esperamos mientras copia el disco virtual al repositorio.

 


Y esperamos a que finalice correctamente, lo sabremos ya que cambiará su estado a “Deployable”.

 

 

Creando una capa de Plataforma

 


Una vez que tenemos lista la capa de SO, ya podremos crear las capas de plataforma que necesitemos con la base del SO creado anteriormente.

Una máquina muy típica será el poder usar ese SO como destino de conexiones para nuestros usuarios, así que vamos preparar nuestros VDA con Windows 2019.

La capa de Plataforma tiene la prioridad más alta, esto significa que se aplicará al final y podrá sobrescribir otras capas.

Desde “Layers” > “Platform Layers” > “Create Platform Layer”.

 


Indicamos un nombre a la capa, una descripción, una versión y el tamaño máximo que le daremos al disco donde haremos los cambios.

Básicamente uniremos la MV a dominio e instalaremos el agente de Citrix o VDA. Continuamos con el asistente,

 


Tenemos que seleccionar la capa de SO que nos interese, en este ejemplo ya tenemos creada la capa SO Windows 2019 Standard, siendo la versión 1.0 la que está disponible.

Continuamos,

 


Seleccionamos el conector donde desplegaremos el disco y la máquina para preparar la capa, usaremos el conector de VMware vSphere conectándonos a nuestro vCenter Server,

 


La usaremos para publicar otras capas, así que marcamos “This platform layer will be used for publishing Layered Images”.

Además de indicar el Hipervisor que estamos utilizando, y la tecnología (si MCS, PVS o View Composer), así como el servicio de brokering que vamos a utilizar (si Citrix Virtual Apps, Citrix Virtual Desktops, Azure, Microsoft RDS, u Horizon View.

 


Indicamos un nombre al vDisk.

 


Y opcionalmente también podremos asociar un icono a esta capa de plataforma.

Continuamos,

 


Verificamos el resumen del asistente, si todo es correcto finalizamos la creación de esta capa desde “Create Layer”.

 


Comprobaremos en Tasks que la tarea está Running, hasta que nos dé una advertencia y nos diga que la máquina está lista y esperándonos a que hagamos los cambios que necesitemos.

 


Lo dicho, una vez nos alerte, nos habrá creado una MV en nuestro entorno vSphere en modo edición. Abrimos la consola de la MV, podremos cambiar el nombre a la MV y unirla al dominio finalmente, así como reiniciarla si es necesario sin problema alguno.

 


Será el momento también de instalarle Citrix Virtual Desktop Agent o VDA, si requerimos de Citrix Workspace pues también, o los packs de optimización de Citrix. Así como el software de Citrix PVS Target Device si usaremos PVS para aprovisionar las máquinas. Si usamos disco de Write Cache en PVS, será también el momento de presentarle el disco y no olvidar eliminarlo al finalizar.

Volveremos a ejecutar Citrix Optimizer para aplicar las optimizaciones de Citrix, ya que las del SO ya las optimizamos en la capa del SO.

 


Una vez tengamos la máquina correctamente instalada y configurada, pulsaremos sobre “Shutdown For Finalize”, un icono que tendremos en el Escritorio.

 


Y veremos cómo automáticamente se finaliza la tarea y queda la capa lista para desplegar.

 

Creando una capa de Aplicación

 


Crearemos normalmente tantas capas de aplicación por app que queramos entregar. Aunque también podremos instalar apps de manera conjunta, copiar ficheros al disco, hacer cambios en el registro…

Luego asociaremos estas capas de aplicación a las imágenes que despleguemos para que nuestros usuarios trabajen.

Desde “Layers” > “App Layers” > “Create App Layer”.

 


Damos un nombre a la capa de aplicación, una descripción y un versionado. Esta capa la usaremos en este ejemplo para desplegar WinRAR 5.80 x64.

Continuamos con el asistente,

 


Seleccionamos la capa de SO que queremos usar para crear la capa de aplicación. En este caso usaremos la capa de SO Windows 2019.

 


Podremos requerir alguna capa adicional a esta capa de aplicación, no es el caso, continuamos.

 


Seleccionamos el conector que usaremos para desplegar la MV donde crearemos esta capa de la aplicación. Como hasta ahora, seguiremos utilizando el conector contra VMware vSphere.

 


Si estamos cambiando de hipervisor lo indicaremos, ya que deberemos instalar las herramientas correspondientes, no es el caso, y raro será que dispongamos de distintos, pero la posibilidad existe.

Continuamos con el asistente,

 


Indicamos un nombre al vDisk,

Seguimos,

 


Podremos asociar un icono subiendo un fichero PNG o JPG. Lo haremos para que quede más chulo.

 


Y para acabar, como es habitual, repasamos el resumen final, si todo es correcto pulsamos en “Create Layer”.

 


Esperamos mientras prepara la máquina en el hipervisor seleccionado…

 


Ahora ya nos advierte que podemos hacer los cambios oportunos en la máquina, nos dará el nombre y deberemos conectarnos por consola para hacer las modificaciones.

 


Instalaremos las apps que nos interesen y reiniciaremos si es necesario. La capa de apps no estará unida al dominio, si la app que vamos a instalar lo requiere, podemos unir esta máquina al dominio, proceder y antes de finalizar volver a sacarla del dominio.

Lo dicho, podemos hacer cualquier cambio que necesitemos, no sólo instalar aplicaciones.

 


Una vez hayamos acabado, nos quedará pulsar en el icono de “Shutdown For Finalize”.

 


Y confirmamos que la capa de app ya se ha finalizado e indica que está disponible para publicarla.

 

Creando Imágenes

 


Llegó el momento, vamos a crear la Imagen Padre que necesitamos para que nuestros usuarios puedan desempeñar su trabajo.

Crearemos una Plantilla por tipo de máquina que necesitemos, podremos asociarle las capas de SO y aplicaciones que nos interese.

Vamos a “Images” > “Create Template”

 


En este caso esta Imagen será para que los usuarios de una granja de Citrix trabajen con un SO Windows 2019 y varias capas de aplicaciones que necesitan para trabajar.

Indicamos un nombre, una descripción e indicamos un icono a la plantilla.

 


Seleccionamos del listado de capas de SO el que nos interese,

Continuamos,

 


En las capas de aplicaciones, podremos asociar las aplicaciones que nos interese, esto hará que estén disponibles estas aplicaciones en la plantilla que estamos creando.

Tengo dos capas de apps de ejemplo que vincularemos, una el WinRAR y otra el Putty.

 


Seleccionamos el conector de nuestro hipervisor para desplegar la Plantilla.

 


Seleccionamos la capa de Plataforma que nos interese. En este caso dispongo de la capa VDA con el software necesario para que acepte conexiones de Citrix.

 


Indicamos un nombre al vDisk e indicamos el tamaño máximo para su disco duro. No será necesario realizar Sysprep para generalizar la máquina y por ahora no permitiremos Elastic Layering para que los usuarios dispongan de también sus capas, donde guardarán sus personalizaciones, ya que por ahora no les vamos a dejar que hagan cambios, más allá de lo que vaya en su perfil.

 


Confirmamos en el asistente que todo es correcto, pulsamos en “Create Template and Publish”,

 


Y esperamos hasta que finalice y nos cree la plantilla de Imagen que estamos creando.

 


Podremos ya por fin ver en nuestro hipervisor la máquina que nos ha creado, esta será la imagen que usemos para crear el resto de máquinas similares que necesitemos para atender la demanda de nuestros usuarios.

 


Podremos crear un Catálogo desde Citrix Studio, seleccionando la Imagen maestra que acabamos de crear y mediante MCS crear tantas máquinas como necesitemos. O con PVS o la tecnología que usemos en cada caso.

Ya por tanto procederemos como sabemos.

 


Y este sería el resultado final del ejemplo que hemos venido haciendo, una máquina con SO Windows 2019, que dispone de RDHS instalado, con VDA instalado y correctamente registrado contra nuestros Delivery Controller. Esperando a que los usuarios se conecten y puedan trabajar con las aplicaciones que le hemos asociado a esta Imagen. Que si nos hemos fijado, asocié dos capas de app, una con un Putty, y otra con WinRAR.

 

Asociando capas a Usuarios

 


Si queremos, en vez de asociar capas de apps a las Plantillas maestras, podemos vincularlas a usuarios o grupos de usuarios. Con el objeto que sea la app quien siga al usuario donde vaya.

Para eso, en “Layers” > “App Layers”, seleccionamos nuestra capa de aplicación > “Add Assignments”.

 


Seleccionamos la versión de la app para la que queremos hacer la asignación de usuarios. Por ahora, sólo tenemos una versión 1.0, así que es esa versión.

 


Seleccionamos la plantilla maestra a la cual realizaremos la asignación.

 


Y aquí será donde buscaremos el o los usuarios de nuestro Directorio Activo a quienes le asociaremos esta capa de app.

Normalmente usaremos Grupos y no Usuarios para asociar las capas.

 


Si todo es correcto, pulsamos sobre “Assign Layer”

 


Recordar que tendremos que en la plantilla maestra deberemos desvincular las capas de app, y habilitar Elastic Layering y el tipo de capa de Usuario que necesitaremos.

Así dependiendo qué usuario se loguee en la máquina, llevará distintas capas de app, incluso los cambios que haga en esa máquina irán en vDisk de la capa del Usuario.

 

Usuario con 1 capa de apps   Usuario con 2 capas de apps

 

Creando una nueva versión de una capa de aplicación

 


Si tenemos la necesidad de presentar algún cambio en alguna capa de aplicaciones, podremos crear un versionado, realizar los cambios (upgrade normalmente) y presentar esta nueva versión a las Imágenes maestras. Así los usuarios disfrutarán de las novedades que les apliquemos.

Para ello, desde “Layers” > “App Layers” > seleccionamos la app > “Add Version”.

 


Especificamos desde qué versión actualizaremos, y cuál será la nueva versión.

En este ejemplo actualizaremos de la 1.0 a la 1.1 del WinRAR. Y con 1GB de disco nos será suficiente para almacenar los cambios que realice.

Lo que haré será aplicarle un paquete de idiomas, en este caso el Euskera.

 


Al continuar con el asistente, seleccionamos sobre qué capa de SO vamos a trabajar para crear esta nueva versión.

 


No es necesario una capa anterior como prerequisito, continuamos con el asistente.

 


Seleccionamos el conector que usarnos para desplegar y paquetizar esta nueva versión, como hasta ahora, seguimos usando nuestro conector de VMware vSphere.

 


No vamos a cambiar de hipervisor, seguimos usando VMware ESXi, por tanto procederemos con el asistente.

 


Indicamos un nombre al vDisk que creará.

 


Y si todo es correcto, repasamos el resumen y confirmamos con “Add Version”.

 


Como ya nos es habitual, debemos esperar mientras preparara la máquina donde aplicaremos los cambios que nos interesen.

 


Una vez la capa de aplicación esté editable nos lo indicará, nos dirá el nombre de MV que habrá creado y en la cual tendremos que entrar en consola para hacer los cambios oportunos.

 


Así que lo dicho, hacemos los cambios que necesitemos, sea actualizar la aplicación, realizarle modificaciones… o como en este ejemplo ponerle un pack de idiomas.

 


Tras finalizar los cambios, como siempre, pulsaremos en “Shutdown For Finalize”.

 


Y veremos en Tasks que la finalizado la tarea de crear esta nueva capa con su nueva versión.

 


Si queremos asociar esta nueva versión de la capa de aplicación a las Imágenes maestras que dispongamos, sobre ellas, desde “Images” > “Edit Template”, lo haremos.

 


Bajo el apartado Application Assignment, veremos las aplicaciones y qué versión tienen asociada. En este ejemplo, deberemos marcar que use a partir de ahora la versión 1.1 del WinRAR.

Finalizamos el asistente desplegando los cambios realizados.

 


Una vez esté validada la nueva versión de la capa de aplicación y los usuarios no se quejen, podremos eliminar las versiones que ya no utilicemos y no tengamos asociadas en las plantillas de Imagen.

Para ello, sobre la capa de app, vamos a “Delete Versions”.

 


Deberemos seleccionar la versión que ya no estemos utilizando y queramos eliminar.

Continuamos el asistente,

 


Y confirmamos la eliminación de la versión desde “Delete Versions”.

 

Espero os haya parecido interesante este pedazo de post viendo bastantes de las posibilidades con Citrix App Layering, donde hemos visto cómo crear una imagen con el software que necesitamos aislado en otras capas y gestionado de manera separada. Finalmente hemos publicado este Server / Desktops a los usuarios mediante Citrix Virtual Apps and Desktops.