En esta entrada veremos cómo crear un pool de escritorios VMware Horizon basado en Ubuntu Linux.
También explicare las diferencias a tener en cuenta en caso de usar Instant Clones o Full Clones y por último veremos las configuraciones necesarias para integrar escritorios en Directorio Activo utilizando Single Sign-On.
Para crear un pool de escritorios VMware Horizon basado Ubuntu Linux , en primer lugar debemos crear una VM que utilizaremos como Golden Image, ademas tendremos que asignar recursos a nivel de CPU, Memoria y Video para cubrir los requerimientos de nuestros usuarios.
Te dejo un enlace con la documentación oficial sobre requerimientos a nivel de HW y versiones soportadas.
Una vez que tengamos la VM creada, procederemos a instalar el OS, en este caso Ubuntu Desktop 18.04.
Configuración general de Ubuntu Linux.
Una vez instalado el OS, debemos realizar una seria de configuraciones generales sobre la Golden Image para asegurar el correcto funcionamiento de Horizon.
1º Configurar la red habilitando DHCP y configurando el resto de las opciones según el caso de uso.
2º Comprobar que el nombre de la VM es correcto:
Ejecutar > sudo nano /etc/hostname
3º Añadir entradas adiciones al archivo hosts en caso de ser necesario. Es indispensable asegurar que la ip del Horizon Connection Server y del DC se resuelven por DNS. Tambien es recomendable anadir la entrada de la maquina como se muestra a continuacion:
Ejecutar > sudo nano /etc/hosts
4º Actualizar el sistema:
Ejecutar > sudo apt-get update
5º Instalar el servidor ssh para permitir la conexión por consola:
Ejecutar > sudo apt-get install openssh-server
6º Instalar herramientas de red.
Ejecutar > sudo apt-get install net-tools
7º Configurar que el entorno gráfico se ejecute por defecto:
Ejecutar > sudo systemctl set-default graphical.target
8º Finalmente Instalar las VMware Tools:
Ejecutar > sudo apt-get install open-vm-tools-desktop
9º Por ultimo, reiniciar el sistema.
Instalación del agente Horizon.
Continuaremos con la instalación del agente de Horizon:
1º Descargar la versión del agente de Horizon correspondiente y copiar el paquete a la VM utilizando WinSSP:
2º Descomprimir el fichero:
Ejecutar > tar -xzvf VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx.tar.gz
2º Instalar dependencias:
Ejecutar>
sudo apt-get install python-gobject
sudo apt-get install python-dbus
3º Finalmente lanzar la instalación del agente desde la carpeta donde descomprimimos el paquete:
Ejecutar > sudo ./install_viewagent.sh
Componentes necesarios para unir la maquina al dominio.
Instalación SAMBA.
1º Instalar SAMBA:
Ejecutar > sudo apt-get install samba
2º Realizar una copia de seguridad del archivo de configuración:
Ejecutar > sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
3º Editar el fichero /etc/samba/smb.conf borrando todo su contenido y añadiendo la siguiente configuración:
Ejecutar > sudo nano /etc/samba/smb.conf
[global]
security = ads
realm = THREESTONESCYCLES.COM
workgroup = TSC
idmap config * : range = 10000-20000
idmap config * : backend = tdb
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
Nota: En el campo realm debemos indicar en mayúsculas el nombre de dominio y en el campo workgroup el nombre NETBIOS del dominio.
4º Por ultimo, comprobar que la configuración es correcta mediante el comando testparam. La salida del comando debería ser similar a la que se muestra a continuación:
Ejecutar >testparm
Configurar Single Sign-On.
El Single Sign-On de VMware Horizon funciona con OpenLDAP y Winbind. En este caso debido a que estamos utilizando Winbind es necesario asegurarnos que el valor:
winbind use default domain = yes
este establecido en el fichero /etc/samba/smb.conf como se indica anteriormente.
Instalación de Kerberos
1º Ejecutar > sudo apt-get install krb5-config
2º Ejecutar > sudo apt-get install krb5-user
3º Realizar una copia de seguridad del archivo de configuración:
Ejecutar > sudo cp /etc/krb5.conf /etc/krb5.conf.bak
4º Editar el fichero /etc/krb5.conf añadiendo la siguiente información:
Nota: Deberemos especificar el nombre del dominio en mayúsculas y los datos del KDC y DC como se muestra a continuación:
Ejecutar > sudo nano /etc/krb5.conf
[libdefaults] default_realm = THREESTONESCYCLES.COM # The following krb5.conf variables are only for MIT Kerberos. kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true # The following encryption type specification will be used by MIT Kerberos
# if uncommented. In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# The only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn't know about (such as
# old versions of Sun Java). # default_tgs_enctypes = des3-hmac-sha1
# default_tkt_enctypes = des3-hmac-sha1
# permitted_enctypes = des3-hmac-sha1 # The following libdefaults parameters are only for Heimdal Kerberos. fcc-mit-ticketflags = true [realms] THREESTONESCYCLES.COM = { kdc = DC1.THREESTONESCYCLES.COM admin_server = DC1.THREESTONESCYCLES.COM default_domain = THREESTONESCYCLES.COM } [domain_realm]
[login]
krb4_convert=true
krb4_get_tickets=false
Instalación y configuración de Winbind.
1º Ejecutar >
sudo apt-get install winbind
sudo apt-get install libpam-winbind
sudo apt-get install libnss-winbind
2º Realizar una copia de seguridad del archivo de configuración:
Ejecutar > sudo cp /etc/nsswitch.conf /etc/nsswitch.conf.bak
3º Configurar Name Service Switch, para ello hay que editar el archivo /etc/nsswitch.conf y añadir la palabra winbind en las líneas passwd y group.
Configuración de PAM
1º Ejecutar > pam-auth-update y habilitar las opciones que se muestran a continuación:
Sincronización horaria
1º Ejecutar > sudo apt-get install ntpdate
2º Actualizar la hora:
Ejecutar > sudo ntpdate dominio
Habilitar el logon con usuarios de dominio.
Para permitir el logon con usuarios del dominio en los escritorios Ubuntu es necesario realizar los siguientes pasos:
1º Realizar una copia de seguridad del archivo de configuración:
Ejecutar > sudo cp /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf.bak
2º Editar el fichero /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf y añadir la línea greeter-show-manual-login=true como se muestra a continuación:
Configuración y comprobación del estado de los servicios VMware Horizon Ubuntu Linux.
Configuración y comprobación del estado de los servicios.
Ejecutar >
sudo service smbd status
sudo service nmbd status
sudo service winbind status
Es importante reiniciar los servicios antes de la integración.
Ejecutar >
sudo service smbd restart
sudo service nmbd restart
sudo service winbind restart
Y finalmente se detiene el servicio samba-ad-dc y se deshabilita el arranque automático cuando inicie el sistema.
Ejecutar >
sudo systemctl stop samba-ad-dc
sudo systemctl disable samba-ad-dc
Pool de escritorios VMware Horizon Ubuntu Linux utilizando Instant Clone.
Es posible utiliza la tecnología de Instant Clone para crear un pool de escritorios basados en las siguientes distribuciones de Linux:
- Ubuntu 18.04/20.04
- RHEL Workstation 7.2 y posterior y 8.x
- RHEL Server 7.8, 7.9, 8.3 y 8.4
- CentOS 7.8, 7.9, 8.3 y 8.4
- SLED/SLES 12.x/15.x
Una vez creada la Golden Image con los pasos descritos previamente, es necesario configurar el método por el cual la maquina se unirá al dominio.
Existen dos formas de hacerlo, la primera es utilizando PowerBroker Identity Services Open (PBISO) y la segunda es con Samba Winbind offline join.
Por sencillez y una mayor compatibilidad entre distribuciones, utilizaremos Samba Winbind offline join.
1º Configurar las siguientes opciones en el archivo /etc/vmware/viewagent-custom.conf Reemplazar YOURDOMAIN por el nombre de NetBIOS del dominio.
OfflineJoinDomain=samba NetbiosDomain=YOURDOMAIN
2º Cuando se crea el escritorio mediante Instant Clone, se genera una nueva tarjeta de red, por lo que cualquier ajuste realizado en la plantilla se perderá. Si la información de DNS no es proporcionada por el DHCP, se deberá especificar los datos del servidor DNS al OS mediante los mecanismos que la distribución permita.
En caso de Ubuntu 18.04, se puede especificar el servidor DNS agregando las siguientes líneas en el archivo /etc/resolvconf/resolv.conf.d/head.
nameserver 192.168.1.2 search threestonescycles.com
Dependiendo de la distribución, también es posible modificar el archivo /etc/systemd/resolved.conf
o con el comando:
sudo systemd-resolve –interface ens160–set-dns 192.168.1.201 –set-domain threestonescycles.com
Nota: Si se especifican scripts de desconexión o postsincronización de ClonePrep, estos deberán estar ubicados en la carpeta /var/userScript y tendrán que tener los permisos de archivo establecidos en 774.
Una vez tengamos lista la Golden Image, apagaremos la VM y realizaremos un Snapshot antes de crear el pool Instant Clone siguiendo los pasos habituales.
Pool de escritorios VMware Horizon Ubuntu Linux utilizando Full Clone.
Para crear un pool de escritorios de tipo Full Clone, debemos elegir el mecanismo para unir la maquina al dominio.
Como comente anteriormente, en este ejemplo utilizaremos Samba Winbind offline join. Por lo tanto es necesario crear un script que realice la tarea de unir el equipo al dominio.
1º Crear un script en /etc/vmware, en nuestro caso se llama joindomain.sh y contienen la configuración que se indica a continuación:
#!/bin/bash
sudo /usr/bin/net ads join -U [email protected]%passwordxxx
reboot
2º Es necesario dar permisos de lectura y ejecución sobre el script:
Ejecutar > sudo chmod 774 joindomain.sh
3º Agregar la ruta de ejecución del script al fichero en el parámetro RunOnceScript del fichero de configuración ubicado en /etc/vmware/viewagent-custom.conf
4º Comentar las opciones de OfflineoinDomain y especificar el nombre NETBIOS del dominio en el campo NetbiosDomain como se muestra a continuación:
5º Crear un Fichero de respuesta con la siguiente información:
6º Una vez finalizados los cambios mencionados anteriormente, es necesario apagar la VM y convertirla a Template. El procedimiento para crear el pool de escritorios Full Clone es el habitual, aunque sera necesario seleccionar el fichero de respuesta creado anteriormente.
Conclusión.
El objetivo de esta guía es mostrar la opciones básicas para llevar a cabo la creación de un pool de escritorios VMware Horizon basado en Ubuntu Linux.
Existen ademas una seria de opciones adicionales a la hora de configurar el Agente de Horizon y las opciones Blast que podrás encontrar en la documentación oficial que te dejo a continuación.
Una vez creado los pools, el acceso con usuarios de dominio y el Single Sign-On deberían funcionar correctamente.
Como siempre, te dejo los enlaces a la documentación oficial
Configurar escritorios Linux en Horizon
También puedes encontrar mas información relacionada con VMware Horizon en mi blog
Si te gusto esta entrada, te invito a compartir la información.