THIN CLIENT
7 febbraio 2006
Un vecchio concetto attuale: un server piuttosto potente ed un certo numero di terminali ricavati da PC obsoleti.
Provate a cercare con un motore di ricerca (ad es. Google) “terminal server linux”, non stupitevi se il risultato indicherà la presenza di alcuni milioni di pagine web; tra le più importanti noterete la presenza di applicazioni realizzate in ambito scolastico (http://www.k12ltsp.org/contents.html).
Scopo
In questo articolo descriveremo come realizzare un terminal server che ci permetterà di semplificare i problemi di manutenzione del laboratorio e riutilizzare i PC con le seguenti caratteristiche:
- CPU: i486 / Pentium
- RAM: 16 / 32 MB
- Hard Disk: nessuno
- Adattatore di rete: 10 Mbps
- CD: nessuno
- Floppy: funzionante
Server
Deve essere un PC con buone caratteristiche, in particolare per 10 utenti consigliamo:
- CPU: PIV o analogo
- RAM: 1GB
- Hard Disk: adatto al numero di utenti (100 – 200 GB)
- Adattatore di rete: 1000 Mbps
- Switch: meglio se con una porta a 1000 Mbps (quella per il server).
Software
Linux Debian 3.1 ed in particolare ltsp 4.1
Prerequisiti
Le operazioni che seguono richiedono una certa conoscenza del sistema operativo Linux e dei principi di networking.
Installazione server
Faremo riferimento al Linux Terminal Server Project (http://www.ltsp.org), in particolare alla documentazione in lingua italiana (http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1.3-0f-it.html), e ci limiteremo a evidenziare le particolarità dell’installazione con la distribuzione Debian 3.1
^top
Installare Debian 3.1
L'installer Debian permette di selezionare il task che si riferisce all'ambiente grafico; avvenuta l'installazione è necessario installare i seguenti software:
apt-get install kdm (display manager scelto)
apt-get install ltsp-utils (software per il terminal server)
apt-get install dhcp (server dhcp)
apt-get install tftpd-hpa (Trivial File Trasfer Protocol utile per l'avvio dei terminali)
Facciamo notare che i programmi sono installabili da una sola riga di comando:
apt-get install mc kdm ltsp-utils dhcp tftpd-hpa
Installare il software per il terminal server
Come utente root eseguire:
su – root
ltspadmin
e installare il package completo LTSP seguendo le istruzioni dettagliate nel documento
http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1-it.html#AEN373
Eseguire il programma ltspcfg e configurare i servizi (dhcp, tftp, nfs, xdmc) seguendo passo passo le istruzioni indicate nel documento:
http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1-it.html#AEN446
Ulteriori personalizzazioni dell'installazione
File /etc/kde3/kdmXaccess
rimuovere il carattere # dalla linea
#* #any host can get a login window
File /etc/kde3/kdm/kdmrc
nella sezione [Xdmcp] verificare la linea:
Enable = true
File /etc/inetd.conf
modificare la linea che si riferisce al daemon tftpd come segue:
tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd -s /tftpboot
File /opt/lts/i386/etc/lts.conf
Configurare il tipo di tastiera per ogni workstation ad es.
[ws001]
XSERVER = auto
XkbModel = pc105
XkbLayout = it
SCREEN_01 = startx
File /opt/ltsp/i386/etc/modules.devfs
abilitare il mouse seriale come segue:
# Serial ports
alias /dev/ttyS* serial
#alias /dev/tts* serial
##alias /dev/ttyS* /dev/tts
#alias /dev/cua* /dev/tts
Avviare i terminali
PXE
Le schede di rete recenti hanno il supporto PXE, ovvero permettono l'avvio del computer direttamente dalla rete; per attivare questa opzione è necessario impostare il BIOS in modo tale che la prima modalità di avvio sia “Boot from LAN”.
Nel file di configurazione del dhcp fare riferimento al kernel di avvio pxelinux.0 (vedere in seguito il file dhcpd.conf).
^top
Creare un floppy di avvio
Per le schede di rete che non hanno il supporto PXE possiamo preparare un floppy di avvio.
Prima di effettuare questa operazione è necessario conoscere, per ogni terminale, il tipo di scheda di rete disponibile; spesso è sufficiente rilevare le scritte sul chip principale per ricavare questa informazione (ad. Esempio RTL8139B)
Collegatevi al sito:
http://www.rom-o-matic.net/
- selezionate l'ultima release di produzione
- selezionate il tipo di adattatore di rete desiderato e scaricatelo
- copiate l'immagine scaricata su un floppy formattato e privo di errori
Esempi:
- per un adattatore del tipo RTL8139B è necessario scaricare l'immagine “
rtl8139:rtl8139b”
- per un adattatore del tipo RTL8029 è necessario scaricare l'immagine “
ns8390:rtl8029”
ed eseguire il comando:
dd if=eb-5.4.1-rtl8139.zdsk of=/dev/fd0
oppure:
dd if=eb-5.4.1-ns8390.zdsk of=/dev/fd0
per creare il floppy di avvio, dove eb-5.4.1-rtl8139.zdsk e eb-5.4.1-ns8390.zdsk sono i file immagine scaricati nei due esempi.
Se avete un adattatore di rete di tipo ISA (ad. es. NE2000) consigliamo di scaricare l'immagine floppy di avvio che si trova nella versione ltsp 5.3.2 ed in particolare "ne - drivers/net/ns8390"
(eb-5.3.2-ne.zdsk).
Swap
È opportuno prevedere uno spazio disco di swap; eseguire i comandi:
mkdir /var/opt/ltsp
mkdir /var/opt/ltsp/swapfiles
Come riconoscere il MAC Address dell'adattatore di rete
Nel file di configurazione dhcpd.conf compare il MAC address della scheda di rete del terminale, per ottenere questa informazione è sufficiente procedere come segue:
- avviare, con il floppy di avvio o con
PXE, il terminale;
- rilevare il MAC address visualizzato sul monitor (è un numero del tipo
00:0F:FE:18:50:65)
- completare il file
dhcpd.conf come indicato in seguito.
File di configurazione utilizzati
File /opt/ltsp/i386/etc/lts.conf
#
# Copyright (c) 2003 by James A. McQuillan (McQuillan Systems, LLC)
#
# This software is licensed under the Gnu General Public License.
# The full text of which can be found at http://www.LTSP.org/license.txt
#
#
# Config file for the Linux Terminal Server Project (www.ltsp.org)
#
[Default]
SERVER = 192.168.1.100
XSERVER = auto
X_MOUSE_PROTOCOL = "PS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
USE_XFS = N
SCREEN_01 = startx
USE_NFS_SWAP = Y
SWAPFILE_SIZE = 100m
[ws001]
XSERVER = vesa
X_MODE_0 = 800x600
X_COLOR_DEPTH = 16
XkbModel = "pc105"
XkbLayout = "it"
[ws002]
XkbModel = "pc105"
XkbLayout = "it"
[ws003]
XkbModel = "pc105"
XkbLayout = "it"
# esempio di utilizzo mouse seriale
[ws004]
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS1"
X_MOUSE_RESOLUTION = 50
X_MOUSE_EMULATE3BTN = Y
XkbModel = "pc105"
XkbLayout = "it"
File /etc/dhcpd.conf
#
# Sample configuration file for ISC dhcpd for Debian
#
# $Id: dhcpd.conf,v 1.4.2.2 2002/07/10 03:50:33 peloy Exp $
#
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 151.99.125.2;
option domain-name "ltsp";
option root-path "192.168.1.100:/opt/ltsp/i386";
default-lease-time 21600;
max-lease-time 21600;
shared-network WORKSTATIONS {
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.110;
}
}
group {
use-host-decl-names on;
option log-servers 192.168.1.100;
host ws001 {
hardware ethernet 00:20:18:28:53:c0;
fixed-address 192.168.1.101;
filename "/lts/vmlinuz-2.4.26-ltsp-3";
}
host ws002 {
hardware ethernet 00:80:C8:FE:17:8E;
fixed-address 192.168.1.102;
filename "/lts/vmlinuz-2.4.26-ltsp-3";
}
# esempio di avvio con PXE
host ws003 {
hardware ethernet 00:80:C8:FD:A0:E9;
fixed-address 192.168.1.103;
filename "/lts/2.4.26-ltsp-3/pxelinux.0";
}
# esempio di adattatore ISA NE2000
host ws004 {
hardware ethernet 00:C0:26:10:95:84;
fixed-address 192.168.1.104;
filename "/lts/vmlinuz-2.4.26-ltsp-3";
option option-128 e4:45:74:68:00:00; #non cambiare
option option-129 "NIC=ne IO=0x280"; #specifici della scheda }
}
Come si può notare gli indirizzi IP sono assegnati in base al MAC address.
File /etc/exports
#
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
## LTSP-begin ##
#
# The lines between 'LTSP-begin' and 'LTSP-end' were added
# on: Fri Sep 30 13:03:35 2005, by the ltspcfg configuration tool.
# For more information, visit the LTSP homepage
# at http://www.LTSP.org
#
/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)
## LTSP-end ##
File /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.100 debian.ltsp debian
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
## LTSP-begin ##
#
# The lines between 'LTSP-begin' and 'LTSP-end' were added
# on: Fri Sep 30 13:03:23 2005, by the ltspcfg configuration tool.
# For more information, visit the LTSP homepage
# at http://www.LTSP.org
#
192.169.1.101 ws001.ltsp ws001
192.169.1.102 ws002.ltsp ws002
192.169.1.103 ws003.ltsp ws003
192.169.1.104 ws004.ltsp ws004
192.169.1.105 ws005.ltsp ws005
192.169.1.106 ws006.ltsp ws006
192.169.1.107 ws007.ltsp ws007
192.169.1.108 ws008.ltsp ws008
192.169.1.109 ws009.ltsp ws009
192.169.1.1010 ws010.ltsp ws010
## LTSP-end ##
File /etc/host.allow
# /etc/hosts.allow
#
## LTSP-begin ##
#
# The lines between 'LTSP-begin' and 'LTSP-end' were added
# on: Fri Sep 30 13:03:29 2005, by the ltspcfg configuration tool.
# For more information, visit the LTSP homepage
# at http://www.LTSP.org
#
bootpd: 0.0.0.0
in.tftpd: 192.168.1.
portmap: 192.168.1.
## LTSP-end ##
Riferimenti
^top
[ 1 2 3 4 ]
[ P a g i n a s u c c e s s i v a ]
|