Virtualización de Escritorios. VDI.

Linux Nivel Medio 22 de oct. de 2023

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:

Software para equipos Clientes segun su Sistema Operativo


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:

Home
Descargar cliente virt-viewer para equipos no-linux

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:

Debian-Newbie 02. Instalando Debian
Tras las comprobaciones previas para determinar que en tu equipo se va instalar sin problemas Debian 12, vamos a detallar paso a paso como realizar la instalación de una manera muy sencilla... más incluso que otros sistemas operativos. Debian-Newbie 01. Comprobaciones previasArtículos de la serie ’…
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:

Instalar Docker en Debian
Instalar docker usando el repositorio oficial de docker.com Debian es uno de los sistemas operativos más fiables y con la paquetería más estable. En este caso vamos a usar la paquería oficial de docker, para disponer de las últimas versiones y parches de seguridad directamente de los fabricantes d…
Instalar Docker 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:

Ejecutar Docker sin ser root
Docker sin sudo Pasos para habilitar docker para que ciertos usuarios puedan usar los comandos de docker sin necesidad de ser root. Debido a que Docker accede a ciertos recursos privilegiados del sistema (red, memoria, reglas de iptables, rutas de directorios restringidas, etc), sólo se permite…
Usar docker sin ser root

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:

docker-compose pull
Descargar las imagenes de los repositorios docker

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:

docker-compose up -d
Iniciar IsardVDI desde /opt/isardvdi

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.
Iniciando los contenedores

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:

Cambiar contraseña por defecto

Debemos ir ahora al pulsar sobre el Administración y nos aparecerá la siguiente ventana:

Ventana de Administración

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:

Descargar un Escritorio

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:

Escritorio/s disponibles

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:

sudo apt -y install virt-viewer
Instalar virt-viewer en equipo cliente (Debian)

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':

Escoger tipo de Visor/Conexión

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:

TetrOS: Escritorio remoto con el juego del Tetris ejecutandose

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':

TetrOS ejecutandose en una ventana del 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.

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux