Servidor de terminales linux

A continuación se resume el procedimiento para configurar un servidor de terminales Linux (LTS). Un LTS es un entorno utilizado para reutilizar equipos antiguos en los que no funcionaría adecuadamente un sistema Linux habitual, ya sea por tener una cpu muy lenta, o poca memoria. Se necesita un ordenador servidor de gama media-alta con mucha memoria. Los clientes abren sesiones en este servidor y utilizan los recursos de este. Por tanto, puedes estar sentado delante de un Pentium 100 y tener en marcha KDE 3.5, OpenOffice 2 con tres documentos y un Firefox con 30 pestañas abiertas.

(Versión no definitiva, pendiente de revisión)

Normalmente un servidor de terminales linux LTS dispone de un servidor dhcp, tftp, nfs, y X. En nuestro caso, el servidor dhcp va en otra máquina, por tanto, describimos aparte la configuración necesaria para incluir el dhcp en la misma máquina.

El primer paso es instalar los paquetes correspondientes:

apt-get install tftpd-hpa nfs-kernel-server libwww-perl openbsd-inetd
apt-get install dhcp3-server (en nuestro caso personal, no)

Lo siguiente es añadir esta línea a /etc/inetd.conf, en caso de que el programa de instalación no la haya añadido.

tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot

Acto seguido, reiniciamos inetd.conf para que los cambios surtan efecto.

/etc/init.d/openbsd-inetd restart

Y comprobamos que funciona con el comando: "netstat -panu | grep 69"

udp6    0   0 :::69          :::*               12067/openbsd-inetd

Ahora procederemos a descargar los paquetes necesarios para LTS. En el sistema anfitrión solo se necesita un paquete, que se llama ltsp-utils. El resto de la instalación que utilizará el cliente reside en un directorio llamado /opt/ltsp. Comenzamos descargando e instalando el paquete desde esta pagina, en concreto, para ubuntu haremos:

wget http://ltsp.mirrors.tds.net/pub/ltsp/utils/ltsp-utils_0.25_all.deb
dpkg -i ltsp-utils_0.25_all.deb

El resto de la instalación hemos dicho que es una instalación de un cliente y se realizará en /opt/ltsp. Es una instalación de un sistema base muy configurable y adaptable que es la que compartirán todos los clientes remotos. Es decir, en un único punto centralizamos el "clon" que usarán los terminales por red. Los desarrolladores de LTSP han optado por distribuir los paquetes como un todo en una imagen iso. El primer paso por tanto será descargarla y tenerla a mano con el siguiente comando:

wget http://ltsp.mirrors.tds.net/pub/ltsp/isos/ltsp-4.2u2-0.iso

Podemos comprobar que la hayamos descargado bien, descargando el md5sum y comprobando que coincide con el md5sum del fichero (ambas secuencias de numeros deben coincidir):

wget http://ltsp.mirrors.tds.net/pub/ltsp/isos/ltsp-4.2u2-0.md5sum
md5sum ltsp-4.2u2-0.iso
cat ltsp-4.2u2-0.md5sum

Montaremos esta imagen ISO en loopback en /opt/ltspfiles usando los siguientes comandos:

mkdir -p /opt/ltspfiles
mount -o loop ltsp-4.2u2-0.iso /opt/ltspfiles

A continuación ejecutaremos ltspadmin.

  • Elegir la opcion "Install/Update LTSP Packages": Se queja de que no esta configurado y que pasará a configurarse

    Where to retrieve packages from?
    [file:///opt/ltspfiles/] file:///opt/ltspfiles/
    
    In which directory would you like to place the LTSP client tree?
    [/opt/ltsp] /opt/ltsp
    
    If you want to use an HTTP proxy, enter it here
    Use 'none' if you don't want a proxy
    Example:  http://proxy.yourdomain.com:3128
    
    [none]
    
    If you want to use an FTP proxy, enter it here
    (Use 'none' if you don't want a proxy)
    
    [none]
    
    Correct? (y/n/c) y
    
  • Aparece un listado de paquetes, elegimos todos los paquetes pulsando "A"

  • Procedemos a instalar pulsando "Q", con lo que instala y sucede:

    Ready to install/update the selected LTSP packages? (y/n) y
    Calculating package dependencies...
    Downloading packages from: file:///root/tmp/ ...
       ltsp-vnc-module-1.0-0-i386.tgz                                 0.15mb  100%
       ...
    Installing the packages...
       ltsp-vnc-module-1.0-0-i386.tgz
       ...
    Press <enter> to continue... 
    
  • Pasamos a configurar el ltsp eligiendo la opcion "Configure LTSP". Esto modifica muchos ficheros de la maquina.

    Checking Runlevel....: 2
    Checking Ethernet Interfaces
    Checking Dhcpd.....
    Checking Tftpd.......
    Checking Portmapper...
    Checking nfs...
    Checking xdmcp............Found: kdm   Using: kdm
    Checking /etc/hosts.
    Checking /etc/hosts.allow.
    Checking /etc/exports.
    Checking lts.conf.
    
  • Luego se queda este menu:

      S - Show the status of all services
      C - Configure the services manually
    
      Q - Quit
    
  • En la opcion S debe mostrar algo asi, todo a "yes".

      --------------------------------------------------------------------------------
      ltspcfg v0.16            The Linux Terminal Server Project (http://www.LTSP.org)
    
      Interface IP Address      Netmask         Network         Broadcast        Used
      eth0      192.168.0.226   255.255.255.0   192.168.0.0     192.168.0.255   <-----
    
      Service    Installed   Enabled   Running   Notes
      dhcpd      Yes         Yes       Yes       Version 3
      tftpd      Yes         Yes       Yes       Has '-s' flag
      portmapper Yes         Yes       Yes
      nfs        Yes         Yes       Yes
      xdmcp      Yes         Yes       Yes       kdm   Using: kdm
    
      File                                Configured  Notes
      /etc/hosts                          Yes
      /etc/hosts.allow                    Yes
      /etc/exports                        Yes
      /opt/ltsp/i386/etc/lts.conf         Yes
    
      Configured runlevel: 2         (value of initdefault in /etc/inittab)
         Current runlevel: 2         (output of the 'runlevel' command)
    
      Installation dir...: /opt/ltsp
    
      Press <enter> to return to the main menu...
      --------------------------------------------------------------------------------
    

Ahora es problema personal si no dice "yes". Arreglarlo implica pasearse por la configuración manual (C) y comprobar las cosas que fallen. En nuestro caso con ir paso a paso por la configuración conseguimos arreglarlo en un par de minutos.

Para completar la configuracion del servidor, debemos crear un fichero en el raiz NFS de los clientes, llamado etc/lts.conf, que servirá para definir las preferencias y especificidades de los terminales. En nuestro caso, contiene en su version de pruebas esto.

    [default]
    SCREEN_01 = startx
    SCREEN_02 = shell
    SERVER = 192.168.0.1
    SOUND = y
    XSERVER = vesa

    [cubonegro]
    XSERVER = i810

    [00:12:3f:8e:66:40] LIKE = cubonegro
    [00:12:3f:8e:0f:b1] LIKE = cubonegro

Es conveniente leer un fichero existente llamado etc/lts.conf.readme que describe todas las posibles opciones que permite este fichero. Toda la configuración de los terminales reside en este fichero.

En este momento ya tenemos instalada y configurada la parte de servidor. Los clientes son muy sencillos. Nosotros probamos arranque PXE, que viene incorporado en ordenadores recientes y funcionó. Tambien probamos usando un grub en los ordenadores clientes que contenía las lineas de kernel e initrd adecuadas. Faltó probar la parte de hacer un diskette de arranque netboot y la parte de flashear una eprom de tarjeta de red. ((detallar este parrafo))

amd77 – Vie, 02/03/2007 – 10:30