Virtualización de Escritorios. VDI.
IsardVDI. Solución VDI Open Source
En el año 2019, conocí en un evento OpenSource en Madrid, a algunos de los creadores y colaboradores de IsardVDI: Josep Maria Viñolas Auquer, Alberto Larraz Dalmases, Daniel Criado Casas y Néfix Estrada.
IsardVDI es una solución OpenSource muy potente y bien diseñada para Virtualizar Escritorios, basada a su vez en otras herramientas OpenSource.
Se trata de un grupo de personas que creen en el Software Libre, tienen toda la solución totalmente disponible, con el código fuente disponible en: https://github.com/isard-vdi
Pero lo mejor de todo es que si tienes alguna duda, les puedes contactar por email en: info@isardvdi.com o directamente contratarles para que te asesoren y te den soporte y solución a duda sobre su producto.
En este artículo, os voy a enseñar como poner en marcha este producto. Además veremos como funciona esta solución que podéis implantar de modo bastante sencillo en alguna cualquier pequeña, mediana o gran empresa y que sirve como solución a los actuales problemas de conexión a Escritorios Remotos.
Ventajas de usar IsardVDI para la Virtualización de Escritorios
- Fácil de instalar. Instalación mínima de Linux + Docker
- Rápido y Ligero. Es realmente rápido y el cliente no necesita disponer de potencia.
- Económico. Si sabes algo de Linux, lo puedes montar por ti mismo.
- Soporte nacional. Puedes contratar el soporte a los propios desarrolladores de la solución.
- Seguro. Soporta encriptado en la virtualización de los escritorios.
- Multi-Sistema. Soporta Windows, Linux o cualquier S.O que sea virtualizable.
- Cliente ligero. Disponible para Linux, Windows (32 y 64 bits).
- Escalable. Puede crecer facilmente según tus necesidades si necesitas más Escritorios.
Disponeis de toda la documentación (en inglés) en: https://isardvdi.readthedocs.io/en/latest/
Aunque no hay manuales en castellano, todo está bastante bien explicado allí.
Pasos para la instalación de IsardVDI
Vamos a realizar una instalación rápida y básica para que comprobeis su potencia.
El tiempo para la instalación es de aproximadamente de una hora, dependiendo de la experiencia que tengas con Linux y de vuestra velocidad de conexión a internet.
Servidor VDI
Para el servidor, necesitaremos:
- Equipo con CPU que soporte virtualización y esté activada en la BIOS/UEFI (para el hypervisor)
- Conexión de red rápida
- USB/DVD con una distribución Linux (Debian, Ubuntu Server, CentOS)
Equipo Cliente:
Para la conexión del equipo cliente a los escritorios virtualizados se puede usar cualquier equipo y sistema operativo.
No es necesario que sea potente ni corresponda la arquitectura destino, puedes usar un equipo de 32 bit y trabajar con un Escritorio con Sistema opertivo de 64 bits.
Software para equipos clientes:
Linux: Podemos usar virt-viewer, que es un paquete nativo en muchas distribuciones.
Para Window, MacOS, iOS y Android, se puede descargar el cliente desde la web de Spice:
La instalación se realiza en dos fases:
- Baremetal: Se instala el Sistema Operativo GNU/Linux en el Servidor dedicado a suministrar los escritorios virtuales.
Requiere de una instalación limpia del Sistema, y se borrarán los datos actuales del servidor para dejar todo preparado para servir los escritorios. - Dockerización: Se utiliza una solución de contenedores (Docker, Podman, Docker Swarm, Kubernetes, etc) para montar toda la infraestructura y servir los escritorios virtuales, en el servidor.
A día de hoy, si no podemos disponer de un equipo potente que pueda hacer de Servidor, cualquier PC de sobremesa que tenga una CPU reciente y con una cantidad de al menos 16 Gb ó 32 Gb, podemos usarlo como servidor inicial para trabajar comodamente. Lo ideal es disponer de 64 Gb de RAM o más.
Respecto al almacenamiento, para la instalación de IsardVDI en modo baremetal, necesitaremos disponer de un disco con al menos 500 Gb, para instalar todo el SO y además comenzar a dar soporte a diferentes tipos de escritorios virtuales. Sería recomendable usar un disco extra instalado en el equipo en el que almacenar los diferentes ‘escritorios virtuales’ que vayamos a ir instalando, que ocuparán lo mismo que una instalación en cualquier PC.
Otro requisito importante será disponer de una buena conexión de fibra, sobre todo si vamos a dar soporte a usuarios que se quieran conectar desde el exterior a los escritorio virtuales que ofrezcamos.
Realmente, el único requisito imprescindible es que la CPU del equipo en el que realice la instalación tenga soporte para virtualización y esté activada en la BIOS.
Para el Servidor, personalmente recomiendo instalar Debian, pues su estabilidad y fiabilidad no la he visto en ninguna otra ‘distro’ de GNU/Linux y resulta más cómoda la gestión de paquetes.
Si te sientes cómodo con cualquier otra distribución, puedes usar la que prefieras.
Para que el servidor consuma la menor cantidad de memoria, sería conveniente instalarlo sin aplicaciones gráficas, ni ningún tipo de escritorio. No es necesario instalar ninguna herramienta gráfica ya que la configuración y gestión de IsardVDI se realiza toda mediante una aplicación web.
Comprobación del soporte de virtualización del servidor
Podemos usar una versión Live de Linux para arrancar el equipo que hará servidor y comprobar si dispone del soporte de virtualización necesario.
Una vez iniciado la versión Live, deberemos salir a la terminal y escribir lo siguiente:
egrep '(vms|smx)' /proc/cpuinfo |tail -1
Si no aparece nada como resultado del comando anterior, el equipo o bien no soporta virtualización o no está activado en su BIOS/UEFI.
Busque y active la virtualización (VT-X en Intel y AMD-V para AMD) y compruebelo de nuevo.
Si todo es correcto veremos una línea similar a la siguiente:
flags : fpu vme de pse tsc msr ... dtes64 monitor ds_cpl vmx smx est tm2 ... vnmi flexpriority ept vpid ... flush_l1d
Instalación de GNU/Linux en el servidor
Como ya hemos comprobado que el equipo soporta virtualización, podemos proceder a instalar Linux en él, puedes seguir la siguiente guía para instalar Debian:
Nota: No será necesario instalar Apache ni Nginx en el servidor, ya que la instalación de IsardVDI inicia su propio servicio web.
El siguiente paso será instalar docker en el servidor, no usaremos la versión suministrada por Debian, sino la versión oficial de Docker.
Puedes seguir la siguiente guía para su instalación en Debian:
Instalación de IsardVDI
Para tener el software perfectemente ubicado, lo dejaremos ubicado en la ruta /opt del servidor.
Si no has activado que tu usuario pueda usar los comandos de Docker sin ser root, puedes hacerlo siguiendo la guía:
Si quieres saltarte este paso, continua como root todo el proceso de instalación.
Instalamos git para poder clonar el repositorio de IsardVDI:
sudo apt -y update
sudo apt -y upgrade
# Instalar GIT
sudo apt -y install git
Nos cambiamos al directorio /opt y clonamos el proyecto:
cd /opt
git clone https://gitlab.com/isard/isardvdi.git
cd isardvdi
cp isardvdi.cfg.example isardvdi.cfg
Ahora lanzamos el script que nos generará el fichero docker-compose.yml
./build.sh
Submódulo 'docker/static/noVNC/src' (https://github.com/novnc/novnc) registrado para ruta 'docker/static/noVNC/src'
Submódulo 'docker/static/spice-web-client' (https://github.com/isard-vdi/spice-web-client) registrado para ruta 'docker/static/spice-web-client'
Submódulo 'guac' (https://gitlab.com/isard/guac.git) registrado para ruta 'guac'
Clonando en '/opt/isardvdi/docker/static/noVNC/src'...
Clonando en '/opt/isardvdi/docker/static/spice-web-client'...
Clonando en '/opt/isardvdi/guac'...
Ruta de submódulo 'docker/static/noVNC/src': check out realizado a '85a465....665f9'
Ruta de submódulo 'docker/static/spice-web-client': check out realizado a '73abc3....8d7153fc2afd1'
Ruta de submódulo 'guac': check out realizado a '36b98f....93a9a5def9'
You have the docker-compose files. Have fun!
You can download the prebuild images and bring it up:
docker-compose pull && docker-compose up -d
Or build it yourself:
docker-compose build && docker-compose up -d
Procedemos a descargar las imágenes de los contenedores ejecutando el comando:
Veremos una salida similar a la siguiente captura:
Esperamos a que finalice la descarga de las imágenes docker:
Iniciar y configurar IsardVDI
En cuanto todas las imágenes muestren 'done' podremos iniciar IsardVDI, para ello escribiremos en la terminal:
Se irán creando e iniciando todos los contenedores que forman parte de IsadVDI.
Nota: La configuración por defecto inicia un servicio web en el puerto 80 y 443 del servidor.
No debes de tener ningun otro servicio que ocupe esos puertos (por ejemplo Apache ó Nginx), o en su defecto puedes modificar en el fichero docker-compose.yml para ajustar los puertos de IsardVDI.
Una vez se hayan iniciado todos los contenedores podemos ir con un navegador a la dirección IP de nuestro Servidor/Equipo. Veremos una pagina similar a esta:
Debemos hacer clic en el botón "Ir al login" y usaremos las siguientes credenciales para acceder y configurar IsardVDI:
Usuario: admin
Contraseña: IsardVDI
Nos aparecerá la ventana de administración:
Lo primero que deberemos realizar por seguridad es ir al Perfil del usuario admin y cambiar su contraseña:
Debemos ir ahora al pulsar sobre el Administración y nos aparecerá la siguiente ventana:
Debemos asegurarnos que tenemos ejecutandose sin problemas el Hypervisor.
Si no es así puede ser que nuestro servidor no soporte Virtualización o tengamos algún valor incorrecto en el fichero de configuracion (isardvdi.cfg)
Si la configuración de tu BIOS/UEFI es correcta y tienes habilitada la Hypervirtualización y sigues con errores, prueba a detener IsardVDI:
docker-compose down
descomentar la siguiente línea del fichero isardvdi.cfg para forzar la opción por defecto:
Ahora deberas iniciar de nuevo IsardVDI:
docker-compose up -d
Descargar Escritorio para probar el funcionamiento
Podemos descargar una serie de escritorios que están disponibles por defecto.
Para ello pulsa en la opción Downloads y escoge alguno de los escritorios:
Dependiendo del tamaño del Sistema Operativo y Escritorio seleccionado la descarga tardará más o menos.
Tras la descarga se mostrará con estado 'Descargado':
Ahora si volvemos a la página principal (botón 'Home') veremos que ya tenemos disponible el SO+Escritorio descargado, en la demo para este artículo hemos seleccionado TetrOS:
Para poder conectarnos a cualquiera de los Escritorios Virtuales, comentamos que necesitaríamos usar un software: virt-viewer
Si tu equipo cliente es un Debian, tan solo tienes que instalar el siguiente paquete para conectarte al escritorio virtual, para ello ejecuta:
Con todo listo en nuestro equipo cliente ya podemos iniciar el escritorio en el servidor VDI.
Pulsa sobre el botón Iniciar.
En cuanto inicie, despliega la opción 'Acceder con el Visor' y escoge 'SPICE':
El servidor VDI te enviará el fichero isard-spice.vv. por defecto se abrirá con el 'Visor Remoto' (virt-viewer). Pulsa en Aceptar:
Te conectarás al escritorio remoto TetrOS, que se trata simplemente de un juego de Tetris:
Si por algún motivo el equipo Cliente no dispone de ningún opción para instalar la aplicación virt-viewer o similar, puede hacer uso de ejecutar el Escritorio Virtual mediante el propio navegador si escoge la opción 'VNC en navegador':
Administración de IsardVDI
Desde el menú de Administración, puedes crear y gestionar nuevos grupos, roles y usuarios.
Puedes crear plantillas de Escritorios a partir de Escritorios existes y permitir su uso filtrando por usuarios, grupos de usuarios, roles, etc.
Por ejemplo, si creamos una plantilla a partir del anterior Escritorio, nuestro usuarios, podrá ejecutarlo y al finalizar la ejecución de ese escritorio se destruye sin ocupar espacio de almacenamiento, memoria o procesos en el servidor. es lo que se denomina "Escritorio temporal":
Nota: Este artículo es una actualización de mi propio artículo, publicado a principios del año 2020.