Introducción

Linux Virtual Desktop Technology Preview nos permite utilizar una escritorio Linux como Escritorio virtualizado, tal y como realizamos con los actuales escritorios Windows.

El siguiente post, entiende, que el lector dispone de conocimientos avanzados de:

  • Citrix XenServer
  • Citrix XenDesktop
  • Administración Linux
  • Administración Windows

El entorno del post/laboratorio se basa en:

  • Domain Controller 2012R2
  • Hypervisor: XenServer 6.5
  • XenDesktop 7.6 + StoreFront X1
  • Desktops basados en 2008R2, 2012R2 y Linux CentOS
  • Monitorización en SMART-X ControlUP (por supuesto!)
  • NAS KELVIN ISCSI

#Notas#y#Consideraciones#

- Las pruebas han sido realizadas sobre un CentOS6.6 y un CentOS7.2. Cabe indicar que en CentOS7 hemos tenido problemas para ejecutar la techpreview de VDA debido a que las versiones de las librerias (mas nuevas) no son compatibles con el LVDTP. A pesar de que CentOS no esta soportado, funciona correctamente en su version 6; siempre y cuando no sea instalado en Español.

- Si utilizamos CentOS6.6 en Español, este es registrado correctamente, pero solo podemos acceder mediante conexión Unbrokered. Si realizamos la instalación en Ingles, funciona correctamente en sesion Brokered y Unbrokered. (Al intentar acceder se desregistra y al poco se registra de nuevo – reportado en discussions.citrix.com)

- A pesar de que CentOS no esta soportado, teniendo en cuenta que XenServer se basa en él, y, la gran expansion de un sistema operativo, estamos convencidos que Citrix acabará proporcionando soporte para dichos sistemas. O debiera.

- Tal como podemos ver en los foros de la comunidad, existen problemas tambien para instalar sobre: Fedora21, OpenSuse13.2, OpenSuse13.1

- No existen datos del director, referentes al Login, directivas, HDX ni personalización.

- No disponemos de información relativa al soporte de PVS o MCS en el deploy de escritorios Linux

- Será soportado OpenGL/3D?

- Podremos utilizar escritorios compartidos? Ya se que esto va en contra del rendimiento en escritorios, pero teniendo en cuenta que Linux es un sistema multiusuario… seria posible?

- Se podrá hacer “remedo” desde director directamente sobre sesiones VDA en Linux? Entiendo que VNC podría ser una alternativa no segura.

- Además de winbind y quest, se soportarán otros sistemas de integración en dominio? (likewise, por ejemplo).

- Será posible utilizar equipos Linux VDA, sin unir-los a dominio? Seria un gran punto a favor.

- Habrá Soporte del Portapeles? En las pruebas actuales no ha funcionado

- Otras pruebas:

* Acceso Mac / Cliente: 11.8.2 Viewer / Acceso OK / Rendimiento OK

* Acceso Windows / Cliente: 4.2.100 Receiver / Acceso OK / Rendimiento OK

* Acceso Linux / Cliente 13.1 / Acceso Brokered - NOK ; Unbrokered - OK / Rendimiento OK / Cuesta recuperar sesión tras bloqueado de pantalla.

* Acceso ThinClient (Ncomputing) / Firmware: 2.1.0 / Cliente: 13.0 / Acceso StoreFront URL - OK but Black Screen // LegacyGraphics Des-habilitados -> Acceso OK // PowerManagement & ScreenSaver Disabled // Rendimiento OK.

- [ En progreso … ]

Requerimientos VDA

Soporte SO: Solo en RHL6.6 y SL11SP3 (tanto en sus versiones Desktop como Server)

Soporte Infraestructura: XenDesktop 7.1 o superior // AD: Samba & Quest AS4.1

Soporte Receiver: Windows Rec.4.2 / Linux: v13.o / OSX: V11.8..2

Soporte Hypervisor: XenServer, Hyper-V & VMWare ESX&ESXi

Instalación

A continuación vamos a ver, un breve resumen, sobre el proceso de instalación del VDA para Linux.

Actualizando el Broker

Lo primero que deberemos hacer es actualizar nuestro servicio de Broker. Para ello, podremos realizar desde el site del VDA la descarga de un paquete de Scripts en el que se incluye un script en PowerShell llamado “update-BrockerServiceConfig.ps1”. Ello posibilitará la nueva funcionalidad para poder proveer de escritorios Linux.

Para ejecutar el script, recordad modificar la directiva de seguridad para la ejecución de scripts en PowerShell.

El Script actualiza la configuración del fichero 'C:\Program Files\Citrix\Broker\Service\BrokerService.exe.config y reiniciar los servicios del Broker.

Verificar upgrade:

Ejecutar: desde "%PROGRAMFILES%"\Citrix\Broker\Service:

#> findstr EndpointLinux BrokerService.exe.config

Deben aparecer 5 lineas con EndPointLinux. Si estas aparecen, el upgrade del servicio ha sido realizado correctamente.

Preparar Target VDA

  • Empezamos modificando (si corresponde) el fichero hosts local de nuestro equipo Linux para asegurar-nos de una correcta resolución DNS de nuestros FQDN.
  • Verificamos con “hostname –f” que el FQDN devuelto sea el correcto.
  • Verificamos resolución y respuesta del Delivery Controller y del dominio mediante el uso de ping y nslookup.
  • Asegurar-nos que tenemos correctamente el servidor de tiempo NTP.
  • Des-habilitar el Network Proxy Authentication en RHL

Instalar Agente VDA

Dependencias

Instalamos dependencias del VDA, ejecutando los siguientes comandos para cada paquete indicado:

OpenJDK (java SDK)

sudo yum -y update java-1.7.0-openjdk (actualiza la version de Java)

export JAVA_HOME=/usr/lib/jvm/java (añade el path a la variable)

PostgreSQL (BD)

sudo yum -y install postgresql-server (instala el paquete)

sudo yum -y install postgresql (instala el paquete)

sudo yum -y install postgresql-devel (instala el paquete)

sudo yum -y install postgresql-jdbc (instala el paquete)

Cuando arranquemos el servicio, ello creará nuestra bd en /var/lib/pgsql/data. Para ello, ejecutar:

sudo service postgresql initdb (incluye el servicion en la bd init)

sudo chkconfig postgresql on (se establece el servicio como ON durante el arranque)

sudo service postgresql start (se arranca el servicio)

OpenMotif

Motif es una biblioteca para la creación de entornos gráficos bajo X Window System en sistemas Unix. Existe una implementación oficial que tiene disponible el código fuente, llamada OpenMotif aunque partidarios del software libre consideran su licencia muy restrictiva. (wikipedia)

sudo yum –y install openmotif (instala el paquete)

ImageMagic

ImageMagick es un conjunto de utilidades de código abierto1 para mostrar, manipular y convertir imágenes, capaz de leer y escribir más de 100 formatos. ImageMagick es publicado bajo la Licencia Apache. (wikipedia)

sudo yum -y install ImageMagick (instala el paquete)

Redhat-lsb-core (Optional)

Linux Standard Base Core Module

sudo yum -y install redhat-lsb-core (instala el paquete)

Optimizando Hypervisor

Como indicamos anteriormente nuestro hypervisor es un XenServer 6.5. En XS6.5 existe un problema de sync de tiempo, que debemos resolver antes de continuar:

If the XenServer Time Sync feature is enabled, within each paravirtualized Linux VM you will experience issues with NTP and XenServer both trying to manage the system clock

Ver documentación, para paso a paso sobre como solucionar esta incidencia.

Integrar Linux en AD (winbind)

Ejecutamos lo siguiente:

sudo yum install samba-winbind (instala el paquete)

sudo yum -y install krb5-workstation (instala el paquete)sudo chkconfig winbind on (se establece para el arranque del sistema)

Configuramos Kerberos con winbind

Editar fichero /etc/samba/smb.conf y añadir en la sección [Global] lo siguiente:

kerberos method = secrets and keytab

winbind refresh tickets = true

Ejecutar, si la máquina ya esta en dominio, la siguiente linea para actualizar/resetear la cuenta de AD.

sudo net ads changetrustpw

Meter el equipo en dominio:

En nuestro ejemplo, vamos a utilizar la GUI de Authentication Configuration Tool (incluida en RH y CentOS para facilitar la configuración).

system-config-authentication

Modificar los campos en rojo, y dejar tal y como mostramos:

Rellenar el resto de datos, y asegurar-se de poner /bin/bash en el template Shell.

Seleccionamos “Unir-se a Dominio” y proporcionamos la contraseña de Administrador del dominio.

Si funciona correctamente, nos devolverá a la pantalla anterior, sin errores. Ahora ir a “Opciones avanzadas” y en la opción de “Other Authentication Options” seleccionar la opción para que se cree el Home directori al iniciar.

Configurar PAM

Pam es un juego de Librerias que permite la autenticación de usuarios de forma centralizada. PAM nos permite definir directivas de seguridad asociadas a servicios para diferentes usuarios.

Por defecto, la configuración del modulo de PAM para Winbind (pam_winbind) no incluye habilitado el cacheo de tickets de Kerberos y la creación del directorio default. Para ello, deberemos editar el fichero de configuración /etc/security/pam_winbind.conf y debemos añadir o cambiar las siguientes entradas en [GLOBAL]

Editamos el fichero y dejamos las siguientes lineas, tal y como se muestra:

krb5_auth = yes

krb5_ccache_type = FILE

mkhomedir = yes

Tras ello, reiniciamos el servicio

sudo service winbind restart

Verificar la membresia en dominio

Para ello ejecutar:

sudo net ads testjoin

join is OK

Si queremos obtener información del objeto, podemos ejecutar:

sudo net ads info

Verificar la configuración de Kerberos

Para el correcto funcionamiento del VDA es vitlal que Kerberos haya sido configurado correctamente. Podemos chequear su configuración con el siguiente comando:

sudo klist –ke

Ello muestra la lista de llaves disponibles.

Ejecutaremos el comando kinit para autenticar la maquina sobre el dominio.

sudo kinit –k MACHINE\$@REALM

sudo kinit –k linuxvda\$@ACME.LAB

Verificar Autenticación de usuario

Utilizaremos la herramienta wbinfo para el verificar que los usuarios puedan autenticar-se.

wbinfo –krb5auth=domain\\username%password

Con ello podremos realizar una prueba de validación utilizando un usuario del dominio. Tambien podemos obtener una lista de los usuarios, mediante:

wbinfo -u

Ahora, para verificar que la conf. de PAM ha sido realizada correctamente, logamos mediante SSH de forma local utilizando una cuenta del dominio.

ssh localhost –l domain\\username

Obtenemos el ID de usuario mediante:

id –u

y verificamos que el fichero de cache krpm -erberos para el usuario ha sido generado.

ls /tmp/krb5cc_uid

y con klist, veremos la expiración de las claves kerberos.

Ya tenemos toda la parte de conf. del dispositivo LINUX. Tenemos nuestro SO, lo tenemos implementado en el dominio, y podemos validar sin problemas con cuentas de dominio de usuario.

Añadir la maquina al catalogo

El proceso es el mismo que cuando añadimos una maquina Windows al mismo; aunque hay que tener ciertas consideraciones:

  • Se incluye la maquina como Windows Server OS.
  • Asegurar-nos que aparecen como “Not Power Managed”
  • PVS y MCS no estan soportados como sistema de deploy para Linux VDA. Selecconar “otra tecnologia de deploy”
  • No mezcles catalogos con diferentes SO.
  • Seleccionar la version de VDA – XenDesktop 7 (or newer)

Con estos pasos en mente, creamos el catalogo tal y como se indica. Como podremos comprobar al buscar sobre las cuentas de maquina, veremos nuestro equipo Linux incluido como objeto.

Incluir la maquina en un Delivery Group

El proceso es el mismo que usamos para incluir maquinas windows, con las siguientes consideraciones:

  • Como tipo seleccionar siempre “Desktops” ; no es soportada la entrega de aplicaciones
  • Asegurar-nos que los usuarios conf. tienen acceso al escritorio.
  • No permitir logons anonimos
  • No mezclar delivery que incluyan maquinas Windows y Linux

INSTALAR EL VDA

Ahora llega la parte mas interesante del proceso, instalar y configurar el VDA para Linux.

Para la instalación ejecutaremos:

sudo rpm -i XenDesktopVDA-0.9.3.106-0.x86_64.rpm

Una vez finalizado el proceso, procedemos a conf. el agente. Para ello ejecutamos el script:

ctxsetup.sh (en /usr/local/sbin)

Este, se asegurara que se cumplan con todas las dependencias y si es necesario realizará los cambios necesarios. Podemos modificar el fichero, para ello, comprobar la ayuda del mismo ejecutando:

sudo /usr/local/sbin/ctxseh –help

Cuando ejecutamos el mismo, se nos solicitara:

FQDN del Delivery; Si queremos registrar el servicio XDL en inicio; Añadir exepciones en Firewall, y el sistema de autenticación, en nuestro caso “winbind” y el sistema para autenticar (en nuestro caso, elegimos Domain\User). Ello realiza un export de los datos indicados como varibles y ejecuta: sudo -E /usr/local/sbin/ctxsetup.sh

  • Recordad: cargad la licencia de VDA.

Comandos VDA

Arrancar el VDA

Una vez finalizado, ejecutar:

sudo /sbin/service ctxhdx start

sudo /sbin/service ctxvda start

Chequear Estado VDA:

[root@centosvda Linux VDA]# sudo /sbin/service ctxvda status

Service CTXVDA is running.

[root@centosvda Linux VDA]# sudo /sbin/service ctxhdx status

Service CTXHDX is running.

Chequear Logs.

Los logs del VDA son almacenados en /var/log/xdl/xva.log. En este podremos ver todos los mensajes referentes al agente para la resolución de problemas.

Habilitar LOGs HDX

Para ello, localizar y copiar el fichero xdl-trace-install.sh.

Otorgar permisos de ejecución y lanzar.

chmod 755 xdl-trace-install.sh

./xdl-trace-install.sh

Screenshots:

Actualizado (Miércoles, 13 de Mayo de 2015 11:30)