LTSPInformagiovani

Installazione di un terminal server con Ubuntu e LTSP

In questa pagina viene descritta l'installazione di un terminal server, usando la distribuzione Ubuntu e il Linux Terminal Server Project. Questa soluzione è stata adottata per poter recuperare computer obsoleti o in alternativa utilizzare un numero maggiore di postazioni senza modificare il sistema preinstallato.

 

Concetti di base

La rete che si andrà a creare si basa su un'architettura client/server; il server in questo caso fornirà ai client un indirizzo IP, il kernel per potersi avviare e un file system minimo per poter avviare l'X server. L'X server che gira sul client a sua volta eseguirà una query tramite il protocollo xdmcp verso il server, avendo in tal modo accesso alle risorse che il server mette a disposizione. La soluzione adottata permette di utilizzare computer obsoleti, con scarse risorse, in quanto il carico maggiore viene affidato al server. Come detto in precedenza sul cliente non viene installato alcun sistema operativo sull'eventuale disco rigido; il boot viene eseguito tramite un floppy oppure, se questa è abilitata, attraverso la scheda di rete.

 

Installazione di Ubuntu

Per l'installazione vi rimandiamo al sito ufficiale. In aggiunta installare i seguenti pacchetti:

  • libwww-perl (usato dal tool di installazione di ltsp)
  • dhcp3-server
  • tftpd-hpa
  • nfs-user-server

Nota: il pacchetto nfs-user-server si trova nel repository "universe"; abilitare la corrispondente linea nel file /etc/apt/sources.list

 

Installazione di LTSP

Scaricare l'installer dal sito di LTSP (in questa guida viene usata la versione 4.1) e scompattare l'archivio. Entrare nella directory ltsp-utils ed eseguire lo script install.sh, quindi eseguire lo script ltspadm Nella schermata iniziale selezionare la linea "Install/Update LTSP Packages"; verra richiesto di configurare quale mirror usare (lasciate pure quello di default) e l'eventuale proxy (il file di configurazione è /etc/ltsp.conf). Dopo aver scaricato la lista degli archivi disponibili chiede quali vogliono essere installati; digitate la lettera "A" e quindi "Q"; il tool provvede a scricarli ed installarli nella directory /opt/ltsp Terminato il download e l'installazione si ritorna al menu pricipale; selezionare "Configure LTSP". Viene eseguita una check list dei servizi disponibili e a seguire viene proposta la possibilità di configurarli.

 

Configurazione di LTSP

 

tftp

Controllare che il servizio sia abilitato nel file /etc/inetd.conf; sostituire la directory /var/lib/tftpboot con /tftpboot ed eseguire un hungup del demone inetd.

 

dhcp server

File di configurazione /etc/dhcp3/dhcpd.conf

 %%(Bash)
 # General options
 default-lease-time              21600;
 max-lease-time                  21600;
 
 # Bootp options
 allow booting;
 allow bootp;
 
 # Network options
 option subnet-mask              255.255.255.0;
 option broadcast-address        192.168.1.255;
 option routers                  192.168.1.1;
 option domain-name-servers      194.20.8.1;
 option log-servers              192.168.1.1;
 option domain-name              localdomain;
 
 # LTSP options path
 option root-path                "192.168.1.1:/opt/ltsp/i386";
 filename                        "/lts/vmlinuz-2.4.26-ltsp-3";
 
 subnet 192.168.1.0 netmask 255.255.255.0 {
  host xt001 {
   hardware ethernet             00:E0:18:88:20:8A;
   fixed-address                 192.168.1.100;
  }
 }
 %%

In questo esempio il terminal server ha indirizzo IP 192.168.1.1 e l'x-terminal 192.168.1.100, quest'ultimo fissato tramite il mac-address. Lo stesso terminal server riceve i log dagli x-terminal (opzione log-servers).
Nel file /etc/hosts dichiarare nome e IP degli x-termial

 %%(Bash)
 192.168.1.100        xt001
 %%
 

syslog

Nel syslog del terminal server abilitare l'opzione per ricevere i log dagli x-terminal, inserendo l'opzione "-r" nel file /etc/init.d/sysklogd

 %%(Bash)
 SYSLOGD="-u syslog -r"
 %%
 

nfs server

Inserire il file system da esportare nel file /etc/exports

 %%(Bash)
 /opt/ltsp                 192.168.1.0/255.255.255.0(ro,no_root_squash,sync)
 /var/opt/ltsp/swapfiles   192.168.1.0/255.255.255.0(rw,no_root_squash,async)
 %%

Il secondo file system esportato viene usato per creare i file di swap degli x-termial. Se non esiste la direcory crearla con il comando:

 %%(Bash)
 mkdir -p /var/opt/ltsp/swapfiles
 %%
 

GDM

Nel file /etc/gdm/gdm.conf modificare le seguenti opzioni (in alternativa menu Sistema -> Amministrazione -> Impostazione della schermata di login)

 %%(Bash)
 [daemon]
 TimedLoginEnable=true
 TimedLogin=/usr/local/sbin/autologin.sh|
 TimedLoginDelay=5
 
 [security]
 AllowRemoteAutoLogin=true
 
 [xdmcp]
 Enable=true
 %%

Le prime quattro opzioni abilitano il login automatico sugli x-terminal; l'ultima abilita il protocollo xdmcp. Lo script autologin determina il nome dell'x-terminal dalla variabile $DISPLAY, per essere usato da gdm come utente di login. Questa soluzione è stata esposta nella"http://www.mail-archive.com/Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo./msg09627.html" class="external text" title='http://www.mail-archive.com/Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo./msg09627.html' rel="nofollow">mailing list di LTSP. Per ogni x-terminal si deve creare un utente il cui nome è uguale al nome dell'x-terminal.

 %%(Bash)
 #!/bin/bash
 #---- autologin.sh ----
 HOSTNAME=`echo ${DISPLAY} | cut -f1 -d: | awk -F . {' print $1 '}`
 echo $HOSTNAME
 exit 0
 %%
 

lts.conf

Il file /opt/ltsp/i386/etc/lts.conf viene usato per la configurazione dell'x-terminal; Il significato id ogni variabile viene riportato nella documentazione del progetto LTSP.

 %%(Bash)
 [Default]
 	    SERVER                  = 192.168.1.1
 	    DNS_SERVER              = 194.20.8.1
 	    XDM_SERVER              = 192.168.1.1
 	    XKBLAYOUT               = it
 	    XKBMODEL                = pc104
 	    X_MOUSE_PROTOCOL        = "PS/2"
 	    X_MOUSE_DEVICE          = "/dev/psaux"
 	    X_MOUSE_BUTTON          = 3
 	    USE_XFS                 = N
 	    USE_NFS_SWAP            = Y
 	    SWAPFILE_SIZE           = 128m
 	    LOCAL_APPS              = N
 	    SCREEN_01               = startx
 	    SCREEN02                = shell
 [xt001]
 	    XF_86CONFIG_FILE        = myXconfig
 %%

In particolare tramite la variabile USE_NFS_SWAP viene definito di usare il file di swap sul terminal server (vedi il file /etc/exports) e la sua dimensione (SWAPFILE_SIZE); non è necessario crearlo in quanto l'x-terminal se non trova il proprio file di swap, lo crea. Per ogni x-terminal si possono ridefinire delle nuove variabili o sovrascriverle; nel caso di xt001 viene indicato di usare myXconfig (si trova in /opt/ltsp/i386/etc) come file di configurazione di X; gli script durante l'avvio dell'x-terminal trovando questa variabile valorizzata non provederanno a creare un proprio file di configurazione.

Creazione di un floppy di boot per l'x-terminal

Il boot dell'x-terminal può essere esguito dalla rete o tramite un floppy di boot; in questo esempio si utilizza la seconda versione. Il sito ROM-o-matic.net fornisce immagini di boot per diverse categorie di schede di rete.

 

TODO

  • Abilitare l'audio sugli x-terminal
  • Rendere visibili il cdrom e floppy dell'x-terminal dalla sessione di gnome.
  • Testare il boot da rete