Installare e configurare Debian edu (Skolelinux)
In questa guida verranno descritte note sull'installazione e la configurazione iniziale di un server Debian edu 7.1, per un laboratorio di informatica scolastico (I.T.I), composto da 24 thin client e un unico server.
Prerequisiti
La tipologia di installazione più comune di una Debian Edu 7.1 è quella "combined server", che installa, su un'unica macchina, due profili server:
1) Server LTSP: che consente il netboot di thin client e fat client 2) Server "main": che fornisce il desktop per i client e i servizi di rete necessari: LDAP, web, DNS, SQL ecc.
Questa soluzione richiede che sul server siano installate due interfacce di rete:
eth0: collegata alla backbone della rete aziendale (subnet WAN) eth1: collegata alla subnet dei client netboot (subnet LAN LTSP)
La configurazione predefinita delle due interfacce è la seguente:
eth0: rete 10.0.0.0/8 - gateway 10.0.0.1 (nome: INTERN) eth1: rete 192.168.0.0/24 - gateway 192.168.0.254 (nome: subnet00.INTERN)
L'IP della macchina server è preconfigurato: 10.0.2.2 (nome: tjener)
La distribuzione, una volta installata, è pronta all'utilizzo con una configurazione di rete predefinita, che non si può, almeno facilmente, modificare. Debian edu 7.1 è, infatti, "LDAP-centrica" ovvero gran parte della configurazione dei servizi di rete è messo tutto sotto LDAP, quindi molto più difficile da modificare rispetto ai semplici file testo.
Nel caso la configurazione di rete della propria azienda non sia una classe A occorrerrà interporre un router fra la macchina e la rete.
Menù “Network → WAN”
WAN Connection Type: Static IP
IP Address:172. 16 . 200 . 20
Subnet Mask:255. 255 . 255 . 0
Default gateway:172. 16 . 200 . 254
Primary DNS:172. 16 . 200 . 254
Secondary DNS:8 . 8 . 8 . 8 (Google DNS)
Menù “Network → LAN”
IP Address:10 . 0 . 0 . 1
Subnet Mask: 255 . 0 . 0 . 0
IGMP: disable
[[Image:]]
|
Il DHCP server del router deve essere disabilitato: per connessioni
Wired/Wireless dal router assegnare un IP statico libero della subnet 10.0.0.0/8 eccetto il range: 10.0.16.20...10.0.31.254, con gateway: 10.0.0.1, netmask: 255.0.0.0, DNS: 8.8.8.8
rete di istituto, per i nuovi parametri della rete “WAN” |
In caso di reset del router, l'IP del web login è: 192.168.0.1
(con DHCP LAN abilitato) |
3) INSTALLAZIONE
» Al boot di installazione, selezionare con i tasti freccia “64 bit install”, quindi premere il tasto Tab e modificare il seguente parametro: desktop=xfce
»Non usare per il primo utente userID = password (l'utente non viene creato, sembra un bug)
» Rispondere SI' alla domanda: “Sicuri di usare il partizionamento guidato?”
» Rispondere NO alla domanda: “Si desidera partecipare all'indagine sui pacchetti?”
Alt+F4: console syslog (stato download pacchetti, estrazione, configurazione ecc.)
Alt+F1: ritorna all'installer
[[Image:]] | I comandi elencati nelle pagine successive vanno eseguiti dall'utente
iniziale, quello creato durante l'installazione (oppure da qualsiasi altro utente autorizzato al sudo ). |
4) POST INSTALLAZIONE
[[Image:]]
|
Le procedure di questo paragrafo possono essere eseguitein automatico dallo script postinstall:$ sh postinstall.sh
|
4.1) Sincronizzare la lista dei pacchetti disponibili
Sincronizzare la lista locale (server e fat client) dei pacchetti disponibili con quella remota presente sul server degli aggiornamenti; eviterà warning nell'uso di dpkg/apt.
wget \ http://http.debian.net/debian/dists/wheezy/main/binary-amd64/Packages.gz gunzip Packages.gz sudo dpkg --update-avail Packages mv Packages /opt/ltsp/i386/tmp sudo ltsp-chroot dpkg --update-avail /tmp/Packages sudo ltsp-chroot rm /tmp/Packages
4.2) Aggiornare etckeeper
Scaricare una versione più recente della 0.63 installata; eviterà warning nell'uso di dpkg/apt.
wget \ http://http.debian.net/debian/pool/main/e/etckeeper/etckeeper_1.12_all.deb sudo dpkg -i etckeeper*.deb rm etckeeper*.deb
4.3) Aggiornare os del server
sudo apt-get update
sudo apt-get -y upgrade
4.4) Aggiornare os dei fat client
sudo ltsp-chroot -m apt-get update
sudo ltsp-chroot -m apt-get -y upgrade
sudo ltsp-update-kernels
4.5) Installare un nuovo pacchetto sui fat client
sudo ltsp-chroot -m apt-get install nomepacchetto
4.6) Installare killer,gksu, gitk
Killer ogni ora individua processi server di utenti che non sono collegati al sistema e li killa.gksu/gksudo sono gli equivalenti gtk di su/sudo. gitk è una GUI per git
sudo apt-get install killer gksu gitk
4.7) Installare localizzazioni/stili
Installare la lingua italiana e stile gtk per la gui di open-office e chromium:
sudo ltsp-chroot -m \
apt-get install libreoffice-gtk libreoffice-l10n-it chromium-l10n
sudo apt-get install libreoffice-gtk libreoffice-l10n-it \ chromium-l10n
4.8) Installare strumenti e ambienti di sviluppo
Installazione di g++, eclipse con cdt, geany (ottimo e leggero IDE)
sudo ltsp-chroot -m apt-get install g++ eclipse eclipse-cdt geany sudo apt-get install g++ apt-get install eclipse eclipse-cdt geany
4.9) Installare LAMP
Occorre installare solo MySQL server e client (PHP e Apache già sono preconfigurati):
sudo apt-get install mysql-server mysql-client sudo ltsp-chroot -m apt-get install mysql-client
4.10) Impostare xfce di default anche per le sessioni locali
L'installazione da DVD/USB installa anche gnome (pur avendo richiesto xfce); mentre la netinstall scarica e installa solo xfce
Per consentire di usare xfce in modalità predefinita (e non Gnome) anche in sessione locale:
sudo update-alternatives --config x-session-manager
quindi selezionare il numero associato a: /usr/bin/xfce4-session
4.11) Creare la struttura di directory per il web degli utenti
Con la creazione di un nuovo utente verranno anche create le directory per lo spazio web personale:
sudo -s
mkdir /etc/skel/public_html mkdir /etc/skel/public_html/cgi-bin exit
5) AMMINISTRAZIONE DI SISTEMA CON GOsa2
Menu delle applicazioni > Sistema > Gosa
oppure aprire con un browser: https://www/gosa
La login è quella dell'utente creato durante l'installazione
E' possibile aggiungere altri utenti Gosa aggiungendoli al gruppo gosa-admins
5.1) AMMINISTRAZIONE DEGLI UTENTI
5.1.1) Modificare i template “newstudent” e “newteacher”
Per la creazione di un nuovo utente “studente” e “insegnante”, Gosa eredita le proprietà di due utenti predefiniti, rispettivamente, “newstudent” e “newteacher”.
E' preferibile che ogni utente venga aggiunto a un solo gruppo primario: students o teachers (di default, invece, il modello utente prevede la creazione di un gruppo primario dello stesso nome dell'utente: tanti utenti, tanti gruppi!).
Menù Gosa > Users > Students > newstudent > POSIX
[[Image:]]
Cambiare il primary group da
“Newstudent” a “Students”
Menù Gosa > Users > Teachers > newteacher > POSIX
[[Image:]] | Ogni utente del modello “newteacher” oltre che al gruppo “teachers” viene
aggiunto anche al gruppo “students” |
5.1.2) Modificare gli username proposti da Gosa nella creazione di un utente
Per la creazione di un nuovo utente, Gosa propone diversi userid formati da lettere del nome e del cognome e dell'utente, ma non consente di definire un userid a piacere (es. nome.cognome). Per aggirare questo limite:
$ sudo mousepad /etc/gosa/gosa.conf
cercare il tag: location name="Debian Edu"
e modificarlo, nel modo seguente, prima della parentesi di chiusura “>” :
...dc=skolelinux,dc=no" allowUIDProposalModification = "true" >
A destra degli userid proposti da Gosa comparirà un'icona: cliccando su di essa, sarà ora possibile immettere un qualsiasi uid valido.
5.1.3) Aggiungere un singolo utente
Menù Users > [ Actions ] > Create > User
Selezionare quindi il template: newstudent o newteacher, rispettivamente se si tratta di uno studente o di un docente.
Scegliere dalla list-box, l'userid proposta. Se si è apportata la modifica al punto precedente, sarà possibile definire una userid diversa da quelle proposte.
[[Image:]]
|
La home dir. dell'utente è:
accedendo a Gosa con le sue credenziali |
5.1.4) Cambio della password
L'utente al primo accesso sarà invitato a cambiare la password accedendo a Gosa mediante le proprie credenziali; un utente non amministratore in Gosa visualizza solo le sue proprietà di cui può modificare solo la password.
5.1.5) Importare lista di nuovi utenti definita in un foglio elettronico
1) Creare un nuovo file con Libreoffice Calc, in cui ogni colonna rappresenti: uid, cognome, nome, password iniziale. Esempio:
[[Image:]]
[[Image:]]
|
Tutti gli utenti devono essere dello stesso modello: docenti o studenti
|
La tabella non deve avere intestazione (il primo utente deve essere definito nella riga 1)
es. D'Avino va scritto: D Avino
e non importa le righe successive (quindi controllare prima se l'userid è libero) . Per controllare se la userid mario.rossi è già utilizzata, eseguire da shell:$ getent passwd | grep “mario.rossi” |
2) Salvare il file in formato “Text CSV“ con delimitatore di campo “,” esempio: 3b.csv (ignorare il warning di Calc)
3) Andare in Gosa > Addons > LDAP Tools > CSV import
> Selezionare il file 3b.csv creato al punto 2 > Selezionare il modello della lista utenti (es. NewStudent)
> Premere il pulsante [Import] in basso a destra
[[Image:]]
5.1.6) Abilitare un utente al sudo
Menù Administration > Sudo rules
Selezionare dalla lista, la regola del primo utente (quello creato con l'installazione)
Nel riquadro “Users and groups”, click sul pulsante “Add from list” e selezionare l'utente al quale si vogliono applicare le stesse regole sudo del primo utente (nell'esempio il I utente è: frank)
[[Image:]]
5.2) AMMINISTRAZIONE DI MACCHINE E DEVICE DI RETE
5.2.1) Assegnare a un client sempre lo stesso IP e nome
La sottorete per i client è preconfigurata: 192.168.0.0/24
I client non richiedono l'autorizzazione in Gosa (a differenza delle workstation): Debian Edu automaticamente assegna a un client che si collega al LTSP server, un IP e un nome.
E' consigliabile, però, far assegnare a un client sempre uno stesso IP e uno stesso nome:
1) Far collegare unicamente il client che si desidera configurare e aspettare la schermata LTSP login
2) Lanciare sul server lo script :
sudo sitesummary2ldapdhcp -a -d
dare la passwd di LDAP (coincide con quella di root) quando richiesto.
In Gosa > System, click sull'icona di “reload list”: apparirà il client collegato, con il nome generico: “auto-mac-xx:xx:xx:xx:xx:xx”.
3) Editare il client cambiandogli il nome da “auto-mac-...” secondo un tema a scelta (es. tc001, client001, 001, ecc.)
4) Impostare un IP non utilizzato da .21 a .252 e:
> abilitare DHCP: (tjener) DHCP
> abilitare DNS zona: TJENER/subnet00.intern:
[[Image:]]
Il client dell'esempio avrà come nome completo: tc001.subnet00.intern
[[Image:]]
|
Si consiglia di:
|
6) APPENDICE
6.1) Installare ed eseguire epoptes (controllore di aula)
[[Image:]]
|
La procedura di installazione è contenuta nello script postinstall:$ sh postinstall.sh
|
Installazione:
1) Lanciare da utente sudo:
sudo apt-get install epoptes sudo ltsp-chroot -m apt-get install epoptes-client
sudo ltsp-chroot -m epoptes-client -c
2) Effettuare la seguente modifica per la corretta gestione dei gruppi LDAP (nella versione 0.5.6):
sudo update-rc.d -f epoptes remove sudo update-rc.d epoptes default 30 70
3) Aggiungere il gruppo teachers al file di default epoptes:
echo 'SOCKET_GROUP=teachers' | sudo tee --append /etc/default/epoptes
4) Riavviare il servizio:
sudo service epoptes restart
Eseguire il controllore dal Menù delle applicazioni > Internet > Epoptesoppure da shell (senza permessi di root) con:
epoptes
[[Image:]][[Image:]]
|
Solo gli utenti del gruppo teachers sono autorizzati ad avviare epoptes
e quindi controllare in remoto i client.
selezionare nessuna miniatura desktop oppure premere Ctrl+A |
6.2) Utilizzare la flash del thin come swap locale !!! da testare !!!
L'utilizzo di uno swap locale, piuttosto che di rete, potrebbe migliorare le prestazioni.
1) Partizionare l'intera memoria flash di ogni client con id 82 (swap linux). (si può usare system-rescue-cd usb bootable e fdisk o gparted)
2) Aprire con vi il file lts.conf:
sudo /opt/ltsp/i386/etc/lts.conf
e modificare le impostazioni di default con due direttive:
[Default]
USE_LOCAL_SWAP=Y NBD_SWAP=N
[[Image:]]
|
Sui thin client HP la selezione del boot device dovrebbe essere fatta
premendo F10 all'accensione (da verificare!!!)
|
6.3) Configurare uno o più client come thin e non come fat
La modalità di funzionamento fat/thin di LTSP Debian edu (sulla subnet 192.168.0.0/24) è predefinita: se il client ha una RAM > 320MB la modalità è la fat , viceversa è thin.
Se si vuole forzare uno o più client a lavorare come thin, indipendentemente dalla quantità di RAM, occorre modificare il file lts.conf:
sudo vi /opt/ltsp/i386/etc/lts.conf
Supponendo che si voglia modificare un solo client, il cui MAC è: 08:00:27:b8:96:68, si scriverà:
[08:00:27:b8:96:68]
LTSP_FATCLIENT=false
[[Image:]]
|
Il client utilizzato dal docente/amministratore è consigliabile
che sia impostato come thin (deve operare sul server)
|
6.4) Abilitare la sintassi evidenziata in vi
Aprire il file rc globale di vi:
sudo vi /etc/vim/vimrc
e inserire come prima riga:
syntax on
Ripetere la stessa modifica per il vimrc dei client fat:
sudo vi /opt/ltsp/i386/etc/vim/vimrc
6.5) Abilitare il web dell'home utente
Il modulo userdir è gia abilitato; occorrerà solo configurarlo.
1) Da server eseguire:
sudo -s
cd /etc/apache2/mods-enabled/ cp userdir.conf userdir.orig.conf
vi userdir.conf
e sostituire la riga:
<Directory /home/*/public_html/>
con
<Directory /skole/tjener/home*/*/public_html/>
[[Image:]] | Anche senza questa modifica, il server web sembra gestire
correttamente le pagine nella dir. public_html |
2) Riavviare il demone http:
service restart apache2
exit
3) Far creare a ciascun utente, collegato da fat client, la seguente directory nella propria home e
impostarne i corretti permessi:
$ cd ~$ mkdir public_html ~$ chmod 755 public_html
La pagina iniziale predefinita è index.html, che sarà raggiungibile (nell'ambito del dominio .intern) all'URL:
http://www/~userid
oppure
http://10.0.2.2/~userid
[[Image:]] | Se si vuole rendere visibile lo spazio web del primo utente (creato durante l'installazione) occorrerà un $ chmod o+x della sua home directory |
6.6) Abilitare i CGI nell'home utente
Il modulo CGI è già abilitato; occorrerà solo configurarlo anche per le home dir.
1) Da server eseguire:
sudo vi /etc/apache2/mods-enabled/userdir.conf
e aggiungere in coda la seguente direttiva:
<Directory /skole/tjener/home*/*/public_html/cgi-bin/>
Options ExecCGI
SetHandler cgi-script
</Directory>
Riavviare il demone httpd:
sudo service restart apache2
2) Far creare all'utente collegato dal fat client, la propria directory cgi-bin e settarne i permessi:
$ cd
~$ cd public_html
~$ mkdir cgi-bin$ chmod 755 cgi-bin
3) Creare un nuovo file di prova hello.c nella dir. cgi-bin:
#include <stdio.h>
int main(void)
{
printf("Content-Type:text/html\n\n");
printf("Hello World!");
return 0;
}
4) Compilare il cgi:
$ gcc -o hello.cgi hello.c
5) Eseguire il cgi sul server web:
http://www/~userid/cgi-bin/hello.cgi
6.7) Non consentire ai fat client di accedere a internet
E' possibile, all'occorrenza, disabilitare temporaneamente l'accesso internet a tutti i fat client della subnet 192.168.0.0/24 :
sudo vi /etc/init.d/enable-nat
Modificare il corpo della funzione is_enabled() come segue:
is_enabled() {
if (do_status | grep -q "$NETWORK_TO_NAT") ||
(do_status | grep -q "thinclientnet/24") ; then
true
else
false
fi
}
Per disabilitare l'accesso internet ai fat client:
sudo service enable-nat stop
Per riabilitarlo:
sudo service enable-nat start
6.8) Copiare un file su tutte le home degli studenti
Il seguente script (cptostud.sh), lanciato con sudo, copia un file in tutte le home directory dei soli utenti che hanno gruppo primario “Students” e ne assegna la proprietà. Il file se è già presente nella directory destinazione viene sovrascritto. La variabile $DIR specifica un'eventuale sottodirectory dell'home utente (es. “Scaricati”). Lasciandola vuota ( $DIR=”” ) il file viene copiato nella home dir. radice: /skole/tjener/home0/uid
#!/bin/bash
DIR="Scaricati"
FILE="/skole/tjener/home0/frank/ex01.c"
UHOME="/skole/tjener/home0"
GRP_NAME="students"
GRP_ID=$(getent group $GRP_NAME | cut -d: -f3)
FILENAME=$(basename $FILE)
_USERS="$(getent passwd | awk -v X=$GRP_ID -F ':' '{if ( $4 == X ) print $1 }')"
for u in $_USERS
do
_dir="${UHOME}/${u}/${DIR}"
if [ -d "$_dir" ]
then
yes | /bin/cp -v "$FILE" "$_dir"
chown -v $(id -un $u):$GRP_NAME "${UHOME}/${u}/${DIR}${FILENAME}"
fi
done== Indice generale == 1) CONFIGURAZIONE BIOS E BOOT USB DELL' HP DL380 G71
1.1) Accedere alla configurazione del RAID1
1.2) Accedere al RBSU (BIOS)1
1.3) Abilitare boot da USB 1
2) CONFIGURAZIONE ROUTER TP-LINK TL-WR841N 2
3) INSTALLAZIONE2
[#__RefHeading__3216_855006261 4) POST INSTALLAZIONE3]
4.1) Sincronizzare la lista dei pacchetti disponibili3
4.2) Aggiornare etckeeper 3
4.3) Aggiornare os del server3
4.4) Aggiornare os dei fat client3
4.5) Installare un nuovo pacchetto sui fat client 4
4.6) Installare killer,gksu, gitk4
4.7) Installare localizzazioni/stili 4
4.8) Installare strumenti e ambienti di sviluppo 4
4.9) Installare LAMP4
4.10) Impostare xfce di default anche per le sessioni locali 4
4.11) Creare la struttura di directory per il web degli utenti5
5) AMMINISTRAZIONE DI SISTEMA CON GOsa25
5.1) AMMINISTRAZIONE DEGLI UTENTI5
5.1.1) Modificare i template “newstudent” e “newteacher”5
5.1.2) Modificare gli username proposti da Gosa nella creazione di un utente6
5.1.3) Aggiungere un singolo utente6
5.1.4) Cambio della password7
5.1.5) Importare lista di nuovi utenti definita in un foglio elettronico7
5.1.6) Abilitare un utente al sudo8
5.2) AMMINISTRAZIONE DI MACCHINE E DEVICE DI RETE8
5.2.1) Assegnare a un client sempre lo stesso IP e nome8
6) APPENDICE10
6.1) Installare ed eseguire epoptes (controllore di aula)10
6.2) Utilizzare la flash del thin come swap locale !!! da testare !!!11
6.3) Configurare uno o più client come thin e non come fat11
6.4) Abilitare la sintassi evidenziata in vi12
6.5) Abilitare il web dell'home utente12
6.6) Abilitare i CGI nell'home utente13
6.7) Non consentire ai fat client di accedere a internet14
6.8) Copiare un file su tutte le home degli studenti15