LTSP

Da RELug :: Reggio Emilia Linux User Group.
(Differenze fra le revisioni)
(Linux Terminal Server Project)
 
(52 revisioni intermedie di un utente non mostrate)
Riga 1: Riga 1:
== Linux Terminal Server Project ==
+
[[Categoria:Guide]][[Categoria:LTSP]]
  
Pagina provvisoria, da qualche aprte si deve pur partire :) --[[Utente:Davide|Davide]] 07:24, 22 mar 2012 (UTC)
+
'''ATTENZIONE: Questa guida e` incompleta/inesatta'''
  
 +
 +
== Linux Terminal Server Project ==
  
 
'''LTSP in breve''' (in entrambi i sensi, per l'abbreviato e per la descrizione):
 
'''LTSP in breve''' (in entrambi i sensi, per l'abbreviato e per la descrizione):
Riga 8: Riga 10:
 
Sistema di rete formato da uno o piu` Server che si prendono in carico un numero imprecisato (dipende dalla potenza del server) di macchine (stupide) dette comunemente "''Thin Client''".
 
Sistema di rete formato da uno o piu` Server che si prendono in carico un numero imprecisato (dipende dalla potenza del server) di macchine (stupide) dette comunemente "''Thin Client''".
  
In rete e` possibile reperire una miriade di informazioni, e` sufficiente inserire "ltsp" in un qualsiasi motore di ricerca.
+
In rete e` possibile reperire una miriade di informazioni, e` sufficiente inserire "ltsp" in un qualsiasi motore di ricerca. Vi consiglio di leggere molto attentamente il manuale in pdf che troverete proprio nel sito ufficiale, chiarira` molti dubbi. Quello che troverete scritto qua e` solo una sintesi con l'aggiunta di qualche appunto.
<!-- E visto cio`, mi suggerisco di partire proprio dall'intallazione, per poi tornare punto su punto su quel che riguarda eventuali personalizzazioni, attenzione perche` ci sara` da discriminare cio` che e` LTSP da quel che e` normale configurazione di sistema operativo -->
+
 
 +
Sito ufficiale: [http://www.ltsp.org/ http://www.ltsp.org/]
 +
 
 +
== Perche` LTSP ? ==
 +
 
 +
I motivi per installare ed utilizzare un LTSP sono molteplici, tra i tanti:
 +
* Utilizzo per realizzazione di un'aula informatica, o un'ufficio a piu` postazioni, per fare un'esempio classico, provate a pensare ad un'aula scolastica.
 +
* Riduzione dei costi, sia per quel che riguarda i computers (i thin client, che possono essere recuperati fra quelli ormai obsoleti e destinati alla discarica) che la parte relativa alla manutenzione.
 +
 
 +
== Funzionamento ==
 +
 
 +
Server LTSP, fornisce i servizi necessari affinche` il Client, possa avviarsi e caricare in memoria il sistema operativo. Per fare questo occorrono alcuni servizi "essenziali", NBD (o il vecchio NFS), TFTP e DHCP.
 +
 
 +
A grandi linee, ecco quel che succede (ho provato a schematizzarlo in un disegno o una tabella, ma e` un po` difficile, portate pazienza e nel frattempo cercate di capirlo con questa descrizione):
 +
 
 +
Dato per scontato che il Server sia gia` configurato, funzionante ed acceso, avviando una prima macchina client, preconfigurata per il boot da scheda di rete, questa si mette in cerca del servizio che possa risponderle, il DHCP.
 +
 
 +
DHCP che invia le informazioni necessarie (il servizio TFTP), affinche` il Client possa scaricare ed avviare il kernel Linux, che, opportunamente parametrizzato, andra` a caricare l'immagine di base del sistema operativo (dicamo opportunamente scheletrizzato), tramite NBD.
 +
 
 +
Come ultima fase, questa immagine contiene i comandi per LDM, col quale il client si "aggancia" al server X del server LTSP.
 +
 
 +
== Pre-Configurazione ==
 +
 
 +
E` stato predisposto un ambiente virtualizzato su di una macchina client facente parte di una rete (col suo server, la connessione internet, ecc.ecc.).
 +
 
 +
Le macchine virtualizzate:
 +
 
 +
;Server (64bit)
 +
: RAM = 1024M
 +
: Processori = 2
 +
: HDD1 = 40G SCSI
 +
: HDD2 = 2G SCSI (swap)
 +
: ETH = 2 schede
 +
: Audio
 +
: ecc.ecc. ..
 +
 
 +
;Client (32 e 64)
 +
: RAM = 512M
 +
: Processori = 1
 +
: Nessun HDD
 +
: ETH = 1 scheda configurata per il boot
 +
: Audio
 +
: ecc.ecc. ..
 +
 
 +
Nella virtualizzazione e` stata preparata una sottorete (virtuale) con un indirizzamento fasullo e senza DHCP, per collegare i thin clients al server senza interferire con altre reti.
  
 
== Installazione ==
 
== Installazione ==
 +
 +
Molte fra le attuali distribuzioni semplificano molto l'installazione.
 +
 +
Nella '''Ubuntu''' per esempio, e` sufficiente utilizzare la versione "alternate", premere il tasto F4 in avvio selezionando installazione LTSP.
 +
 +
=== Debian ===
 +
 +
E` la distribuzione che ho scelto per questo primo approccio al sistema.
 +
 +
Una volta installato il sistema di default (sul pc Server, base + desktop) bastano pochi comandi per installare il server LTSP:
 +
<pre style="color:green">
 +
apt-get install ltsp-server-standalone
 +
ltsp-build-client
 +
ltsp-build-client --arch i386
 +
</pre>
 +
L'ultimo per predisporre anche l'immagine del 386, visto che l'installazione server e` "amd64".
 +
 +
<!-- ERRORE, nella "squeeze" non e` piu` cosi`
 +
Adesso un po` di configurazione del Server, proprio il minimo indispensabile per veder funzionare un client, ma prima fate questo (che vi dice Debian durante l'installazione LTSP):
 +
<pre style="color:green">
 +
echo "/opt/ltsp *(ro,no_root_squash,async,no_subtree_check)" >> /etc/exports
 +
invoke-rc.d nfs-kernel-server restart
 +
</pre>
 +
Che '''non funzionera`''', non ancora, manca il resto ...
 +
-->
 +
 +
== Configurazione ==
 +
 +
==== Minimo indispensabile ====
 +
 +
[[File:Ltsp-eth1.png|thumb|eth1]]
 +
Dopo il login sul server configurate la seconda scheda di rete (la prima s'e` beccata l'indirizzo DHCP durante l'installazione ed e` gia` configurata, collegata e funzionante), ho scelto:
 +
 +
;Address = Gateway = DNS = 192.168.11.1
 +
;Netmask = 255.255.255.0
 +
 +
===== Configurazione del DHCP =====
 +
 +
Modifiche al file "'''/etc/dhcp/dhcpd.conf'''", riporto sol alcune delle righe modificate, le altre non sono state variate:
 +
<pre style="color:blue">
 +
# option definitions common to all supported networks...
 +
option domain-name "ltsp.local";
 +
option domain-name-servers 192.168.11.1, ltsp.ltsp.local;
 +
#option ntp-servers 192.168.11.1;
 +
option routers 192.168.11.1;
 +
option broadcast-address 192.168.11.255;
 +
option subnet-mask 255.255.255.0;
 +
 +
default-lease-time 600;
 +
max-lease-time 7200;
 +
 +
#Aggiunta alla fine del file
 +
include "/etc/ltsp/dhcpd.conf";
 +
</pre>
 +
Si puo` notare che ho assegnato il nome della macchina "ltsp" e della rete "ltsp.local", oltre che questo server fara` da gateway/router/dns.
 +
 +
Ora tocca alla parte DHCP del nostro sistema LTSP, ho modificato cosi` il file "'''/etc/ltsp/dhcpd.conf'''":
 +
<pre style="color:blue">
 +
#
 +
# Default LTSP dhcpd.conf config file.
 +
#
 +
 +
authoritative;
 +
 +
subnet 192.168.11.0 netmask 255.255.255.0 {
 +
    range 192.168.11.20 192.168.11.250;
 +
    option domain-name "ltsp.local";
 +
    option domain-name-servers 192.168.11.1;
 +
    option broadcast-address 192.168.11.255;
 +
    option routers 192.168.11.1;
 +
    next-server 192.168.11.1;
 +
#    get-lease-hostnames true;
 +
    option subnet-mask 255.255.255.0;
 +
    option root-path "/opt/ltsp/amd64";
 +
#    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
 +
        filename "/ltsp/amd64/pxelinux.0";
 +
#    option root-path "/opt/ltsp/i386";
 +
##    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
 +
#        filename "/ltsp/i386/pxelinux.0";
 +
#    } else {
 +
#        filename "/ltsp/i386/nbi.img";
 +
#    }
 +
}
 +
</pre>
 +
Ho lasciato attivo solo per Thin Clients a 64bit, ho disattivato tutti gli "if" perche` i clients caricavano il file errato.
 +
 +
Mi sembra che non ci sia nient'altro, non per una configurazione di base perlomeno.
 +
 +
Ok, riavviamo tutto:
 +
<pre style="color:green">
 +
invoke-rc.d isc-dhcp-server restart
 +
invoke-rc.d openbsd-inetd restart
 +
</pre>
 +
 +
E avviamo il nostro client ..
 +
 +
== Upgrade ==
 +
 +
=== Server ===
 +
Per l'upgrade del server si procede nel solito modo:
 +
 +
<pre style="color:green">
 +
apt-get update
 +
apt-get upgrade
 +
</pre>
 +
 +
=== Client (immagine) ===
 +
 +
==== Procedura superata/vecchia ====
 +
Per le macchine client, o meglio, per lo scheletro di sistema che devono caricare in avvio, nessuna macchina deve essere collegata al server e si procede effettuando il cambio della root del filesystem:
 +
 +
<pre style="color:green">
 +
chroot /opt/ltsp/<arch>
 +
</pre>
 +
 +
Dove <arch> corrisponde alla tipologia dell'architettura della macchina, esempio: i386.
 +
 +
Ora, il filesystem sarebbe "spento", per l'aggiornamento, il sistema deve credere che invece sia funzionante, quindi avere una "/proc" in funzione:
 +
<pre style="color:green">
 +
mount -t proc proc /proc
 +
</pre>
 +
 +
Adesso la procedura e` sempre uguale:
 +
<pre style="color:green">
 +
apt-get update
 +
apt-get upgrade
 +
</pre>
 +
 +
Prima di uscire dal cambio root (chroot), ricordate di smontare (anche di uscire :) ):
 +
<pre style="color:green">
 +
umount /proc
 +
exit
 +
</pre>
 +
 +
==== Procedura attuale/semplificata ====
 +
 +
Questi comandi abbreviano tutta la procedura descritta sopra (sottocapitolo precedente):
 +
<pre style="color:green">
 +
ltsp-chroot -d -p -r -b /opt/ltsp -a <arch> apt-get update
 +
ltsp-chroot -d -p -r -b /opt/ltsp -a <arch> apt-get upgrade
 +
</pre>
 +
 +
 +
'''Importante'''
 +
 +
Se nell'upgrade e` stato aggiornato anche il kernel, dopo essere usciti e` necessario informare il server:
 +
<pre style="color:green">
 +
ltsp-update-kernels
 +
</pre>
 +
 +
Per il medesimo motivo, si devono aggiornare le immagini (si proprio le immagini scheletro che vengono caricate dai client, quelle col nome <arch>.img per intenderci) della "chroot", il comando e` (da ripetere per ogni architettura):
 +
<pre style="color:green">
 +
ltsp-update-image --arch=<arch>
 +
</pre>
 +
 +
== Personalizzazioni ==
 +
 +
Ad oggi (4 Aprile 2012) e` stato aggiunto un solo utente (relug) e non e` stato preparato nessun "lts.conf".
 +
 +
== Approfondimenti ==
 +
 +
Terminata l'installazione standard, nel caso di Debian, e` possibile loggarsi dal client LTSP con lo username inserito durante l'installazione ed anche come root.
 +
Da notare che ci si trova loggati direttamente nella macchina "server".
 +
 +
Nell'installazione Ubuntu, non e` possibile accedere con lo username d'installazione.
 +
 +
----
 +
 +
Al termine di un aggiornamento "client", le directory "/opt/ltsp/<arch>/boot" e "/srv/tftp/ltsp/<arch>" appaiono disallineate. Sono di nuovo "sincronizzate" dopo il comando:
 +
<pre style="color:green">
 +
ltsp-update-kernels
 +
</pre>
 +
 +
----
 +
 +
Il comando che aggiorna le immagini delle chroot:
 +
<pre style="color:green">
 +
ltsp-update-image
 +
</pre>
 +
Non fa` nient' altro che "comprimere" la/e chroot(s) in un file .img, quell' immagine di base del sistema operativo che viene caricato dai clients.
 +
 +
----
 +
 +
Debian "squeeze" utilizza gia` "nbd" invece di "nfs". Ubuntu "oneiric" anche. I sistemi pero`, hanno una differente configurazione, vedi file "/etc/inetd.conf".
 +
 +
== Considerazioni ==
 +
 +
Visto che le personalizzazioni specifiche per client avvengono tramite MAC address, usato sia nel file "lts.conf" (preferibilmente posto nella directory del TFTP, come consigliato nel manuale), sia in "/etc/ltsp/dhcpd.conf", si potrebbero far somigliare quelli dello stesso gruppo:
 +
00-00-01-00-01-01
 +
00-00-01-00-01-02
 +
00-00-01-00-01-03
 +
00-00-01-00-01-04
 +
... ...
 +
00-00-01-00-02-01
 +
00-00-01-00-02-02
 +
00-00-01-00-02-03
 +
00-00-01-00-02-04
 +
... ...
 +
Per facilitare queste configurazioni/personalizzazioni, per cambiare MAC address si puo` utilizzare:
 +
<pre style="color:green">
 +
ifconfig eth<n> hw ether <xx:xx:xx:xx:xx:xx>
 +
</pre>
 +
Pero` attenzione, perche` alcuni di questi numeri hanno un significato ben preciso, vedi: http://standards.ieee.org/develop/regauth/oui/public.html
 +
 +
== LTSP Attivita` ==
 +
 +
* [[LTSP Attivita`]]

Versione attuale delle 11:04, 15 mar 2014


ATTENZIONE: Questa guida e` incompleta/inesatta


Indice

[modifica] Linux Terminal Server Project

LTSP in breve (in entrambi i sensi, per l'abbreviato e per la descrizione):

Sistema di rete formato da uno o piu` Server che si prendono in carico un numero imprecisato (dipende dalla potenza del server) di macchine (stupide) dette comunemente "Thin Client".

In rete e` possibile reperire una miriade di informazioni, e` sufficiente inserire "ltsp" in un qualsiasi motore di ricerca. Vi consiglio di leggere molto attentamente il manuale in pdf che troverete proprio nel sito ufficiale, chiarira` molti dubbi. Quello che troverete scritto qua e` solo una sintesi con l'aggiunta di qualche appunto.

Sito ufficiale: http://www.ltsp.org/

[modifica] Perche` LTSP ?

I motivi per installare ed utilizzare un LTSP sono molteplici, tra i tanti:

  • Utilizzo per realizzazione di un'aula informatica, o un'ufficio a piu` postazioni, per fare un'esempio classico, provate a pensare ad un'aula scolastica.
  • Riduzione dei costi, sia per quel che riguarda i computers (i thin client, che possono essere recuperati fra quelli ormai obsoleti e destinati alla discarica) che la parte relativa alla manutenzione.

[modifica] Funzionamento

Server LTSP, fornisce i servizi necessari affinche` il Client, possa avviarsi e caricare in memoria il sistema operativo. Per fare questo occorrono alcuni servizi "essenziali", NBD (o il vecchio NFS), TFTP e DHCP.

A grandi linee, ecco quel che succede (ho provato a schematizzarlo in un disegno o una tabella, ma e` un po` difficile, portate pazienza e nel frattempo cercate di capirlo con questa descrizione):

Dato per scontato che il Server sia gia` configurato, funzionante ed acceso, avviando una prima macchina client, preconfigurata per il boot da scheda di rete, questa si mette in cerca del servizio che possa risponderle, il DHCP.

DHCP che invia le informazioni necessarie (il servizio TFTP), affinche` il Client possa scaricare ed avviare il kernel Linux, che, opportunamente parametrizzato, andra` a caricare l'immagine di base del sistema operativo (dicamo opportunamente scheletrizzato), tramite NBD.

Come ultima fase, questa immagine contiene i comandi per LDM, col quale il client si "aggancia" al server X del server LTSP.

[modifica] Pre-Configurazione

E` stato predisposto un ambiente virtualizzato su di una macchina client facente parte di una rete (col suo server, la connessione internet, ecc.ecc.).

Le macchine virtualizzate:

Server (64bit)
RAM = 1024M
Processori = 2
HDD1 = 40G SCSI
HDD2 = 2G SCSI (swap)
ETH = 2 schede
Audio
ecc.ecc. ..
Client (32 e 64)
RAM = 512M
Processori = 1
Nessun HDD
ETH = 1 scheda configurata per il boot
Audio
ecc.ecc. ..

Nella virtualizzazione e` stata preparata una sottorete (virtuale) con un indirizzamento fasullo e senza DHCP, per collegare i thin clients al server senza interferire con altre reti.

[modifica] Installazione

Molte fra le attuali distribuzioni semplificano molto l'installazione.

Nella Ubuntu per esempio, e` sufficiente utilizzare la versione "alternate", premere il tasto F4 in avvio selezionando installazione LTSP.

[modifica] Debian

E` la distribuzione che ho scelto per questo primo approccio al sistema.

Una volta installato il sistema di default (sul pc Server, base + desktop) bastano pochi comandi per installare il server LTSP:

apt-get install ltsp-server-standalone
ltsp-build-client
ltsp-build-client --arch i386

L'ultimo per predisporre anche l'immagine del 386, visto che l'installazione server e` "amd64".


[modifica] Configurazione

[modifica] Minimo indispensabile

eth1

Dopo il login sul server configurate la seconda scheda di rete (la prima s'e` beccata l'indirizzo DHCP durante l'installazione ed e` gia` configurata, collegata e funzionante), ho scelto:

Address = Gateway = DNS = 192.168.11.1
Netmask = 255.255.255.0
[modifica] Configurazione del DHCP

Modifiche al file "/etc/dhcp/dhcpd.conf", riporto sol alcune delle righe modificate, le altre non sono state variate:

# option definitions common to all supported networks...
option domain-name "ltsp.local";
option domain-name-servers 192.168.11.1, ltsp.ltsp.local;
#option ntp-servers 192.168.11.1;
option routers 192.168.11.1;
option broadcast-address 192.168.11.255;
option subnet-mask 255.255.255.0;

default-lease-time 600;
max-lease-time 7200;

#Aggiunta alla fine del file
include "/etc/ltsp/dhcpd.conf";

Si puo` notare che ho assegnato il nome della macchina "ltsp" e della rete "ltsp.local", oltre che questo server fara` da gateway/router/dns.

Ora tocca alla parte DHCP del nostro sistema LTSP, ho modificato cosi` il file "/etc/ltsp/dhcpd.conf":

#
# Default LTSP dhcpd.conf config file.
#

authoritative;

subnet 192.168.11.0 netmask 255.255.255.0 {
    range 192.168.11.20 192.168.11.250;
    option domain-name "ltsp.local";
    option domain-name-servers 192.168.11.1;
    option broadcast-address 192.168.11.255;
    option routers 192.168.11.1;
    next-server 192.168.11.1;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/amd64";
#    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/amd64/pxelinux.0";
#    option root-path "/opt/ltsp/i386";
##    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
#        filename "/ltsp/i386/pxelinux.0";
#    } else {
#        filename "/ltsp/i386/nbi.img";
#    }
}

Ho lasciato attivo solo per Thin Clients a 64bit, ho disattivato tutti gli "if" perche` i clients caricavano il file errato.

Mi sembra che non ci sia nient'altro, non per una configurazione di base perlomeno.

Ok, riavviamo tutto:

invoke-rc.d isc-dhcp-server restart
invoke-rc.d openbsd-inetd restart

E avviamo il nostro client ..

[modifica] Upgrade

[modifica] Server

Per l'upgrade del server si procede nel solito modo:

apt-get update
apt-get upgrade

[modifica] Client (immagine)

[modifica] Procedura superata/vecchia

Per le macchine client, o meglio, per lo scheletro di sistema che devono caricare in avvio, nessuna macchina deve essere collegata al server e si procede effettuando il cambio della root del filesystem:

chroot /opt/ltsp/<arch>

Dove <arch> corrisponde alla tipologia dell'architettura della macchina, esempio: i386.

Ora, il filesystem sarebbe "spento", per l'aggiornamento, il sistema deve credere che invece sia funzionante, quindi avere una "/proc" in funzione:

mount -t proc proc /proc

Adesso la procedura e` sempre uguale:

apt-get update
apt-get upgrade

Prima di uscire dal cambio root (chroot), ricordate di smontare (anche di uscire :) ):

umount /proc
exit

[modifica] Procedura attuale/semplificata

Questi comandi abbreviano tutta la procedura descritta sopra (sottocapitolo precedente):

ltsp-chroot -d -p -r -b /opt/ltsp -a <arch> apt-get update
ltsp-chroot -d -p -r -b /opt/ltsp -a <arch> apt-get upgrade


Importante

Se nell'upgrade e` stato aggiornato anche il kernel, dopo essere usciti e` necessario informare il server:

ltsp-update-kernels

Per il medesimo motivo, si devono aggiornare le immagini (si proprio le immagini scheletro che vengono caricate dai client, quelle col nome <arch>.img per intenderci) della "chroot", il comando e` (da ripetere per ogni architettura):

ltsp-update-image --arch=<arch>

[modifica] Personalizzazioni

Ad oggi (4 Aprile 2012) e` stato aggiunto un solo utente (relug) e non e` stato preparato nessun "lts.conf".

[modifica] Approfondimenti

Terminata l'installazione standard, nel caso di Debian, e` possibile loggarsi dal client LTSP con lo username inserito durante l'installazione ed anche come root. Da notare che ci si trova loggati direttamente nella macchina "server".

Nell'installazione Ubuntu, non e` possibile accedere con lo username d'installazione.


Al termine di un aggiornamento "client", le directory "/opt/ltsp/<arch>/boot" e "/srv/tftp/ltsp/<arch>" appaiono disallineate. Sono di nuovo "sincronizzate" dopo il comando:

ltsp-update-kernels

Il comando che aggiorna le immagini delle chroot:

ltsp-update-image

Non fa` nient' altro che "comprimere" la/e chroot(s) in un file .img, quell' immagine di base del sistema operativo che viene caricato dai clients.


Debian "squeeze" utilizza gia` "nbd" invece di "nfs". Ubuntu "oneiric" anche. I sistemi pero`, hanno una differente configurazione, vedi file "/etc/inetd.conf".

[modifica] Considerazioni

Visto che le personalizzazioni specifiche per client avvengono tramite MAC address, usato sia nel file "lts.conf" (preferibilmente posto nella directory del TFTP, come consigliato nel manuale), sia in "/etc/ltsp/dhcpd.conf", si potrebbero far somigliare quelli dello stesso gruppo:

00-00-01-00-01-01
00-00-01-00-01-02
00-00-01-00-01-03
00-00-01-00-01-04
... ...
00-00-01-00-02-01
00-00-01-00-02-02
00-00-01-00-02-03
00-00-01-00-02-04
... ...

Per facilitare queste configurazioni/personalizzazioni, per cambiare MAC address si puo` utilizzare:

ifconfig eth<n> hw ether <xx:xx:xx:xx:xx:xx>

Pero` attenzione, perche` alcuni di questi numeri hanno un significato ben preciso, vedi: http://standards.ieee.org/develop/regauth/oui/public.html

[modifica] LTSP Attivita`

Strumenti personali