Terminales ligeros con LTSP

¿Y si digo que tengo el secreto para no tener que gastar un "duro" en equipos nuevos para los usuarios? ¿Y si digo que tengo el secreto para reducir las horas de instalación de sistemas operativos, softwares, actualizaciones, etc. pudiendo centralizar la administración de todo ello? Si estamos en una red pequeñita, no significará mucho. Pero si estamos en una red que muchos usuarios, se nos pondrán los "ojos redondos". En este artículo quiero hablar de LTSP (GNU/Linux Terminal Server Proyect). LTSP nos permitirá reutilizar equipos anticuados como si se tratase de terminales ligeros sin disco duro, con las siguientes ventajas:

  • Coste: se reduce el gasto en máquinas nuevas para los usuarios, ya que se pueden utilizar máquinas obsoletas. Cuando dichas máquinas ya se puedan utilizar, se pueden comprar terminales ligeros, que son más baratos que un PC nuevo.
  • Aprovechamiento de los recursos: En un entorno de oficina, gran parte de la potencia de un PC no se utiliza, ya que principalmente se utilizarán herramientas ofimáticas, navegador web y aplicaciones que requieren en general poca capacidad de cómputo. Mediante LTSP, no es preciso utilizar máquinas especialmente potentes, ya que la carga computacional corre de mano del servidor LTSP.
  • Administración centralizada: consolidación del software en un único servidor, donde reside la mayor parte del cómputo.
  • Reducción del calor y consumo eléctrico: los terminales ligeros ahorran mucha energía al no disponer de discos duros, y también consumen menos electricidad.
  • Flexibilidad: cualquier máquina que pueda arrancar desde la red, puede utilizar LTSP, no necesariamente un terminal ligero
  • Escalabilidad: Poner un nuevo puesto de usuario, se reduce a encontrar el hardware (un PC obsoleto, por ejemplo) que pueda arrancar desde la red. No es preciso instalar nada, ya que el software está instalado en el servidor.

También tiene desventajas:

  • Un solo punto de fallo: Si el servidor LTSP falla, los puestos de usuario no funcionarán.
  • Coste del servidor: El servidor debe ser robusto, estable, y tener una capacidad de cómputo adecuada al número de usuarios.
  • Sobrecarga de la red: La red debe tener una arquitecutura adecuada para soportar el tráfico generado por los terminales ligeros.

Afortunadamente, todas estas desventajas se pueden superar con una planificación e implementación adecuados.

Creación del servidor LTSP

De momento me voy a basar en Ubuntu 10.04 LTS (este LTS significa Long Term Support). Asumo que tenemos una máquina que hará las veces de servidor LTSP, al que llamaremos "LTS-server", y que se ha instalado en ella Ubuntu 10.04. Los pasos que daremos son los siguientes:

Configurar la red

Utilizaremos una interfaz de red para conectar "LTS-server" a Internet, y otra interfaz para conectar "LTS-server" a la red de usuarios, según se representa en la siguiente imagen:

Según la topología anteriormente presentada, la configuración de red de LTS-server será la siguiente:

# archivo /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.10.1 netmask 255.255.255.0

Tras configurar la red, debemos reinicar el servicio:

sudo /etc/init.d/networking restart

Instalar LTSP

Lo siguiente es instalar el servicio LTSP en LTS-server. Para ello, en primer lugar vamos a actualizar el listado de paquetes de los repositorios de Ubuntu:

sudo apt-get update

A continuación, vamos a instalar el paquete ltsp-server-standalone, para lo que ejecutamos el siguiente comando:

sudo apt-get install ltsp-server-standalone

DHCP

LTS-server empleará un servicio DHCP para los clientes LTSP que se conecten a él. LTS-server les asignará una IP válida. Por ello, debemos configurar dicho servidor DHCP para que conceda IPs válidas. El archivo a editar es /etc/ltsp/dhcpd.conf. En nuestro caso, el rango de red adecuado es 192.168.10.0/24:

# # Default LTSP dhcpd.conf config file. # authoritative; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.20 192.168.10.250; option domain-name "midominio.com"; option domain-name-servers 192.168.10.1; option broadcast-address 192.168.10.255; option routers 192.168.10.1; option subnet-mask 255.255.255.0; option root-path "/opt/ltsp/i386"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } }

Generar un sistema cliente LTSP

Para crear el sistema cliente que se descargará desde el terminal ligero a través de la red, debemos utilizar el siguiente comando:

ltsp-build-client --arch i386

Ahora debemos reiniciar el servidor.

Arrancar desde un terminal ligero

Debemos configurar el terminal ligero, para que arranque desde la red. Por supuesto, el terminal ligero debe ubicarse en la red dedicada a LTSP. Y no hay mucho más que decir. La siguiente imagen muestra un terminal LTSP tras iniciar.

LTSP para el arranque de Windows

Aunque GNU/Linux debería ser suficiente en cualquier caso, existen ocasiones en las que Windows puede ser necesario en ciertos contextos. LTSP permite el inicio de sesiones Windows en los terminales ligeros, via RDP. El proceso, a "grosso modo" sería el siguiente:

  • El terminal ligero descarga el sistema cliente a través de la red.
  • El terminal ligero inicia de forma automática una sesión de Terminal Server contra una máquina Windows, via RDP.

Para conseguir esto, debemos añadir el archivo lts.conf en el directorio /var/lib/tftpboot/ltsp/i386/ con el siguiente contenido:

[DEFAULT] SCREEN_07 = rdesktop RDP_SERVER = "192.168.10.2" RDP_OPTIONS = "-u usr01 -p Pa5sW0rd" [08:00:27:b6:18:42] SCREEN_07 = rdesktop RDP_SERVER = "192.168.10.3" RDP_OPTIONS = "-u usr32 -p Pa5sW0rd"

El archivo anterior, indica por un lado la conexión vía RDP que intentará iniciar cualquier cliente ligero, y por otro lado, la conexión vía RDP que intentará iniciar el cliente ligero cuya MAC sea 08:00:27:b6:18:42. Siempre se superpondrá la configuración concreta (asociada a la MAC) sobre la configuración por defecto. En realidad, los parámetros incluidos (SCREEN_07, RDP_SERVER y RDP_OPTIONS) se autodocumentan, por lo que no voy a insistir en ellos. De todas formas existen manuales muy extensos sobre LTSP.

Nos queda asegurarnos de que (según el ejemplo anterior) existen las máquinas Windows que harán de servidores RDP (mediante Terminal Server). Una opción, es utilizar máquinas virtuales corriendo en el mismo servidor LTSP. No debemos tampoco olvidar configurar Windows para que acepte conexiones RDP. Y ya está, así de simple. La imagen siguiente muestra un terminal ligero sin disco duro tras iniciar mediante LTSP y atacando por RDP a una máquina Windows.

Saludos.