Nelle scuole e negli uffici, per ragioni economiche o pratiche, spesso risulta più comodo avere un solo computer potente su cui installare un sistema perfettamente funzionante e poi tutta una serie di terminali più “semplici” che eseguano il sistema presente sul computer adibito a server. Ebbene, tutto ciò è possibile grazie a LTSP , in particolare con MueKow, il sistema LTSP di Ubuntu. In pratica si prende un computer, il server, su cui viene installato GNU/Linux e i pacchetti necessari: questi realizzano una copia di una normale installazione GNU/Linux nella cartella /opt , la quale coinciderà proprio con il sistema che verrà avviato da tutti i terminali collegati (detti “thin client”). In questo modo i thin client, anche se sprovvisti di disco rigido, potranno fare una ricerca all’interno della rete locale, trovare il server LTSP, e caricare il sistema operativo presente nella cartella /opt/… del server.
Quindi il sistema con cui viene avviato il server e quello con cui vengono avviati i thin client è di fatto diverso: ciò semplifica di gran lunga le operazioni di aggiornamento dei sistemi, il controllo degli utenti connessi e soprattutto fornisce la possibilità di gestire thin client con architetture diverse (x86, 64 bit, PowerPC…). Non bisogna dimenticare inoltre che in questo modo, da qualunque thin client si colleghi, un utente troverà sempre la stessa configurazione con i suoi dati personali. Esiste addirittura un sistema operativo già pronto per l’uso con dei Raspberry Pi come thin client: si chiama PiNet e rende l’LTSP facilissimo da implementare ed estremamente economico. Ma, per chi vuole mettere in piedi il proprio sistema LTSP partendo da zero, presentiamo la nostra guida.
Innanzitutto si apre una console sul sistema server e si installa il pacchetto per ltsp e per openssh con il comando sudo apt-get install ltsp-server-standalone openssh-server
. Nel caso ci siano degli errori di configurazione basta digitare sudo apt-get install -f
e poi sudo dpkg --configure -a
.
Per preparare l’ambiente di lavoro dei thin client si deve digitare il comando sudo ltsp-build-client
. Questo comando è preposto alla preparazione del sistema operativo che verrà eseguito dai processori dei vari thin client e fondamentalmente non fa altro che installare un sistema GNU/Linux completo dentro la cartella /opt del server. Si deve poi configurare il server in modo che ci si possano connettere i thin client.
Basta aprire il file di configurazione dhcp con il comando sudo nano /etc/ltsp/dhcpd.conf
e impostare i valori corretti per la propria rete locale. Poi si digita il comando sudo ltsp-update-sshkeys
in modo da aggiornare le chiavi di accesso al server LTSP, nonché il comando sudo invoke-rc.d dhcp3-server restart
per riavviare il server DHCP.
Si può modificare il sistema dei client dal server stesso con il comando sudo chroot /opt/ltsp/i386
in modo da ottenere una shell con privilegi di root all’interno del sistema che si trova in /opt/ltsp/i386 . Per esempio, si possono installare programmi, configurarli e addirittura provare ad eseguirli (soprattutto se si sta lavorando con il server grafico attivo sul proprio computer). Il bello è che si può montare anche la cartella /home all’interno di tutte le varie home dei sistemi LTSP installati (per esempio /opt/ltsp/i386/home ). In questo modo, ogni utente avrà sempre accesso ai propri file e alle proprie impostazioni a prescindere dall’architettura del thin client che sta usando.
Naturalmente è necessario preparare anche i thin client per poter eseguire il sistema presente sul server. Se i client sono abbastanza moderni (prodotti 10 o 15 anni fa) si può usare il sistema etherboot . Per farlo si deve installare sul server il pacchetto mknbi con il comando sudo apt-get install mknbi
ed eseguire questi comandi:
cd /var/lib/tftpboot/ltsp/i386
sudo mknbi-linux --output=vmlinuz.etherboot --rootdir="/dev/ram0" --append="rw" vmlinuz initrd.img
per ogni architettura che si è deciso di supportare con etherboot. Poi si deve aprire il file /etc/ltsp/dhcpd.conf e cambiare la riga filename “/ltsp/i386/pxelinux.0”; con le righe
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
filename "/ltsp/i386/pxelinux.0";
}
else{
filename "/ltsp/i386/vmlinuz.etherboot";
}
Ovviamente, anche questa operazione va ripetuta per ogni architettura. Infine, basta riavviare il server e avviare i client impostando l’Ethernet come dispositivo di avvio principale.