CAU en lata.
A veces te pones a hacer una cosa y resulta que hasta que no llevas un rato metido en ello no le sacas ninguna utilidad. A mi esto se me ha ocurrido en base a mis últimos experimentos con LTSP5.

Tras las últimas pruebas, he hecho funcionar LTSP sin muchos problemas. Además, el rendimiento conseguido bajo VMWare es muy bueno, al menos para tareas sencillas en nuestros thin clients. El propósito que queremos conseguir es tener en un pendrive (grande) o en un disco duro externo un servidor completo para levantar thin clients de emergencia cuando nuestro/a jefe/a nos lo pida y así ponernos un medallón. Vamos al lío…
Aunque soy más bien Fedorero, en Ubuntu Gutsy tenemos todo lo necesario para levantar un servidor LTSP versión 5 sin esfuerzo. Parece ser la distribución más optimizada (junto a Debian claro) para este propósito y es que realmente los terminales arrancan en segundos.
Creamos una máquina virtual en VMWare en modo Other Linux 2.6.x Kernel con 8GB preasignados y unos 512MB de RAM. Instalamos Ubuntu 7.10 y al acabar acutalizamos los paquetes y le asignamos una IP fija. Como vamos a crear una configuración móvil, descartamos el servidor ltsp-server-standalone e instalamos el ltsp-server. Parece absurdo verdad? No se supone que una configuración móvil debería de estar completa? Claro, pero ponte a editar a mano un dhcpf.conf allá donde vayas!! Lo que vamos a hacer es una solución de emergencia y las emergencias necesitan rapidez. Primero lo primero:
Instalamos los servidores NFS y SSH:
sudo apt-get install nfs-kernel-server openssh-server
Tras esto añadimos la siguiente línea a /etc/exports :
/opt/ltsp *(ro,no_root_squash, async)
Luego instalamos el servidor LTSP con soporte para dispositivos locales
sudo apt-get install ltsp-server ltspfs
Creamos la carpeta del cliente…
sudo ltsp-build-client
… y ejecutamos los scripts:
sudo ltsp-update-kernels
Éste era meter los archivos de arranque en el servidor tftp
sudo ltsp-update-sshkeys
Y éste para actualizar las claves SSH en caso de haber modificado la IP de nuestro servidor (si cambiamos la IP puede requerir también rehacer ltsp-buil-client, error “workstation not authorized”).
Poca cosa eh! Ahora vamos a por el servidor tftp. Cuando instalamos ltsp-server se descarcarga, configura y se levanta automáticamente, así que simplemente nos tenemos que preocupar de que contenga los archivos correctos para que los pueda servir cuando se los pida los thin clients. La ruta para los archivos es /var/lib/tftpboot/ltsp/i386 pero los clientes buscarán directamente dentro de /var/lib/tftpboot,que es la ráiz de nuestro servidor tftp. Esto viene por lo siguiente…
Volvemos al tema de no integrar el dhcpd en esta máquina. Como he dicho antes, si buscamos rapidez a la hora de levantar terminales no podemos ponernos a editar un complicado archivo de texto. Además, tampoco podemos meter un DHCPD a lo loco en una red cualquiera. Tenemos que tener todo bajo control para no armar un pitote. Lo que vamos a hacer es una segunda máquina virtual con un PFSense que podamos configurar a nuestro antojo para adecuar nuestros clientes a la red donde los vamos a meter. Un m0n0wall sería más ligero, pero así de paso veo que tal les va en el desarrollo de la nueva versión que ya va por la RC4. No me quiero meter mucho en la configuración de este sistema porque iré hablando de él en más ocasiones, solo decir para quien no lo conozca que tiene un manual maravilloso en la web oficial y que en este caso solo vamos a usar sus opciones como router sencillo y servidor DHCP.
Para crear esta máquina, nos bajamos de la web de PFSense la imagen de CD y seguimos el asistente de VMWare para definir un sistema FreeBSD con un disco duro de unos 600MB, 256MB de RAM y dos tarjetas de red (bridged). Tras arrancar el CD en el menú en modo texto inical (consola de VMWare), decimos que no a la configuración de VLANs. Asignamos las interfaces en el orden que queramos (le0 WAN y le1 LAN o viceversa y no tenemos Optional).

Después de esto, el sistema acabará de cargar y tendremos una IP por defecto para la LAN y si existe un DHCP en la red que estemos trabajando, la interfaz WAN cogerá una dirección. Usando las opciones del menú, asignamos la IP de la LAN que debe de estar dentro de la misma red que el servidor LTSP (de nuevo no al DHCP) y acto seguido lo instalamos en el disco duro (opción 99). Esta instalación requiere grandes conocimientos sobre los conceptos ” press enter”, “ok”, “yes”, “proceed” y “next”.
Entramos en la webGUI del PFSense poniendo su IP en el navegador desde el servidor LTSP. Por defecto el login es admin/pfsense. Ahora ya tenemos la parejita de sistemas que necesitábamos para llevar a cabo el proyecto. A partir de ahora cada uno puede adecuar uno y otro según donde se vaya a meter. Yo voy a seguir adelante con un ejemplo que puedo escenificar en casa:
- Red establecida con DHCP y con una puerta de enlace a internet.
- Equipo cualquiera en funcionamiento dentro de esa red con VMWare Player.
- Un switch 10/100 patatero cualquiera que tengamos de reserva.
- Un portátil que hará de thin client en un direccionamiento distinto que la red principal, pero con acceso a través del PFSense virtualizado.
La receta mola eh! Vamos al turrón!!
Pongamos que la red establecida tiene un direccionamiento 172.17.12.0/24 y nuestro CAU en lata 172.17.15.0/24. En PfSense vamos a la sección Services-DHCP Server y activamos DHCP para la interfaz LAN. Establecemos un rango para los clientes que se conecten y al final de la página activamos Network Booting para que nuestros thin clients arranquen por PXE boot, definiendo la ruta al archivo de arranque pxelinux.0.


Como podéis observar, la ruta tiene delante /ltsp/i386/.. Esto es porque como dije antes, el directorio raíz de nuestro TFTP es /var/lib/tftpboot, por lo que si ponemos solo el nombre del archivo en el recuadro, como que no lo va a encontrar. En versiones anteriores de PFSense y M0n0wall, esto se tenía que configurar haciendo una ñapa en el archivo XML de backup que te puedes bajar desde el WebGUI y añadiendo a mano los siguientes tags donde empezaba la configuración del DHCPD:
<next server>xxx.xxx.xxx.xxx</next server>
<filename>/ltsp/i386/pxelinux.0</filename>
Se entiende mi idea de rapidez verdad? Además, si queremos asignar IPs concretas antes o después de conectar los thin clients, podemos usar el menú web para asignar direcciones a las MAC que queramos. Todo un lujo a golpe de click! Vamos a poner en práctica todo este rollo.
Copiamos las carpetas que contienen cada una de las máquinas virtuales en un disco duro externo. En caso de necesitar una no os recomiendo las ofertas de Mediamarkt o similar. Suelen dar muchos problemas y tienen más diseño que calidad. Yo tengo una carcasa maravillosa de IcyBox que soporta USB2.0 y FireWire 800. La uso para pinchar en directo y nunca me ha dado ningún problema ni en Linux ni en Windows ni en Mac. Puedes adquirir una en www.cajasexternas.com. Aquí la podéis ver junto a mi Nabaztag mimichi.
Instalamos VMWare Player, la versión ligera de VMWare para levantar sus máquinas. Yo lo he metido en mi Media Center que funciona en Windows Vista. Hasta que no haya soporte para sintonizadoras PCIexpress me tengo que aguantar…
Ahora tenemos que hacer un poco de netswapping para que no haya conflictos en los DHCP a la hora de asignar las direcciones. Generalmente, si en esta red hay un servidor DHCP “físico” actuará antes que el “virtual”, así que primero arrancamos los thin clients desconectando el conjunto ltsp-server / thin clients de la red principal pero conectados entre ellos. Después les daremos internet. Para esto era el switch patatero!!
A estas alturas ya podemos arrancar nuestro thin client. Debería recibir una IP del DHCP del PFSense y encontrar los archivos de arranque del servidor LTSP. Si el equipo es medianamente potente, arrancará en menos de 30 segundos.
Por defecto, usará como puerta de enlace la IP del PFSense y saldrá a Internet tan pronto como su interfaz WAN se entienda con el servidor DHCP principal. Por lo tanto, conectamos de nuevo el conjunto a la red principal y si es necesario refrescamos la interfaz WAN desde la web de PFSense. Con VMWare Player no me han gustado mucho los resultados. Es la opción más rápida si vamos a usar un equipo al que no hayamos tenido tiempo de configurarle nada antes, pero os recomiendo tener VMWare Server o Workstation en el portátil de trabajo porque con esta versión todo este tinglado ha funcionado mucho mejor.