Installare e configurare Debian edu (Skolelinux)
Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.
Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template. |
Versioni Compatibili Tutte le versioni supportate di Debian |
In questa guida verranno descritte le sequenze di installazione e configurazione di Debian edu 7.1, che sono state seguite per la creazione di un ambiente LTSP in un laboratorio di informatica scolastico (triennio ITI Informatica) principalmente dedicato allo sviluppo di pagine web (HTML,PHP/MySQL,CGI C) e applicazioni in C/C++/Ruby/Java.
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:
- Server LTSP/thinclient, che gestisce il netboot di thin client e fat client
- 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 presenti due interfacce di rete:
- eth0: collegata alla rete backbone (e quindi a internet mediante un gateway della stessa rete)
- eth1: collegata a una sottorete dedicata esclusivamente al netboot di thin/fat-client
La configurazione predefinita di queste due interfacce è la seguente:
Int. | IP | Netmask | Rete (nome) | IP Gateway |
---|---|---|---|---|
eth0 | 10.0.2.2 | 255.0.0.0 | 10.0.0.0/8 (intern) | 10.0.0.1 |
eth1 | 192.168.0.254 | 255.255.255.0 | 192.168.0.0/24 (subnet00.intern) | 192.168.0.254 |
L'IP del server è dunque 10.0.2.2 (tjener.intern), il quale offre anche i servizi di DNS e DHCP per boot da rete di client attestati sia sulla rete intern
, che sulla subnet00.intern
, nelle seguenti gamme di indirizzi:
Rete | DHCP Range |
---|---|
intern | 10.0.16.20...10.0.31.254 |
subnet00.intern | 192.168.0.21...192.168.0.253 |
Debian edu, quindi, esce "dalla scatola" con una configurazione di rete, che non si può, almeno facilmente, modificare. Essa è, infatti, "LDAP-centrica" ovvero gran parte della configurazione dei servizi di rete è messa sotto LDAP. Con l'installazione viene fornito uno script (/usr/share/debian-edu-config/tools/subnet-change
) che dovrebbe rendere automatiche queste modifiche, ma ci sono testimonianze discordanti sul suo effettivo "funzionamento" (personalmente non ha funzionato).
Nel caso la rete della propria azienda non sia una classe A e quindi non abbia una configurazione di rete che collimi con quella di Debian edu, la soluzione più semplice è quella di interporre un router fra questa e il server, basta un router/AP domestico (che abbia una porta WAN, diversamente non è idoneo allo scopo) come il TP-LINK TL-WR841N (ND) (dal costo di 20-30 Euro) oppure un modello cablato come il TL-R402M della stessa Casa.
Configurazione del router TP-LINK TL-WR841N(ND)
La configurazione di seguito descritta è applicabile anche ad altri modelli router wired/wireless TP-Link, compresi quelli di altre marche (lo schema di configurazione è sostanzialmente identico per ogni router). Come gran parte dei router "domestici", la configurazione riguarda due "versanti", WAN e LAN:
- WAN, rete aziendale, la quale offre anche l'instradamento verso internet mediante un gateway
- LAN, rete locale del server alla quale è collegata anche l'interfaccia eth0 del server
La prima configurazione è accessibile tramite un browser all'indirizzo: http://192.168.0.1 ,inserendo le credenziali di default: admin/admin
Configurazione WAN
I dati della rete "WAN" devono essere relativi alla configurazione della propria rete aziendale/scolastica (quelli riportati sono solo a titolo d'esempio). Devono essere quindi forniti dall'amministratore di rete. Per il router in questione, la configurazione è accessibile tramite il menù web: “Network → WAN”
WAN Connection Type: Static IP (oppure DHCP)
IP Address | 192.168.1.20 |
---|---|
Subnet Mask | 255.255.255.0 |
Default gateway | 192.168.1.254 |
Primary DNS | 192.168.1.254 |
Secondary DNS | 8.8.8.8 |
Configurazione LAN
I dati della rete "LAN" sono invece mandatori, in quanto rigidamente legati alla configurazione di rete di Debian edu. Il router in questione configura il versante LAN definendo l'indirizzo IP del router e la subnet netmask e quindi, di conseguenza, anche la classe della rete LAN. Si accede alla configurazione LAN tramite il menù: “Network → LAN”
IP Address | 10.0.0.1 |
---|---|
Subnet Mask | 255.0.0.0 |
N.B. Dopo questa modifica l'indirizzo IP 10.0.0.1 costituirà quindi il nuovo IP del router e quindi le successive configurazioni tramite il pannello web saranno possibili aprendo l'indirizzo: http://10.0.0.1
Disabilitazione del server DHCP
Il DHCP server del router deve essere disabilitato (in quanto nella LAN deve funzionare un solo DHCP server per il netboot di client).
Scegliere il menu "DHCP → DHCP Settings" e attivare l'opzione "Disable"
Eventuali altre connessioni wired/wireless al router da workstation o notebook (non netboot) dovranno quindi essere configurate mediante un IP statico libero che non appartenga ai range DHCP della rete intern (10.0.16.20...10.0.31254)
Installazione e primo avvio
L'installazione può essere fatta mediante CD/DVD o pendrive USB. Il sito http://ftp.skolelinux.org/ consente di scaricare diverse immagini ISO, per creare CD, DVD e USB autoavvianti. Fra queste si segnalano due in particolare:
- CD: debian-edu-7.1+edu0-CD.iso (655MB): l'installazione viene avviata da un CD, quindi vengono scaricati i pacchetti necessari dalla rete (richiede molte ore usando una connessione ADSL tipica da 7Mbps).
- USB: debian-edu-7.1+edu0-USB.iso (5,4GB): l'installazione viene avviata da un pendrive USB che contiene gran parte dei pacchetti richiesti. E' comunque necessario il collegamento alla rete in quanto viene scaricato qualche aggiornamento o pacchetto aggiuntivo (richiede meno tempo della installazione da CD).
Qualunque sia l'immagine scelta è necessario scaricare anche due file per il successivo controllo integrità con MD5, che andranno salvati sempre nella stessa directory di download dell'ISO:
- http://ftp.skolelinux.org/skolelinux-cd/wheezy/MD5SUMS
- http://ftp.skolelinux.org/skolelinux-cd/wheezy/MD5SUMS.asc
Creazione del supporto di installazione (Linux)
Prima della creazione è necessario fare il checksum dell'ISO scaricata. Nella directory dove sono stati salvati il file .ISO e il file MD5SUMS eseguire:
$ md5sum -c MD5SUMS
In caso di risultato "non riuscito" relativo all'immagine scaricata (ignorare i warning delle altre ISO) occorrerà cancellare la stessa immagine e provvedere a un nuovo download. Per la masterizzazione CD fare riferimento alla FAQ Debian
Per la creazione del pendrive USB avviabile occorrerà innanzitutto identificare il device name del pendrive (es. /dev/sdb). Portarsi, quindi, nella directory dove è stata salvata la ISO e lanciare i seguenti comandi:
# umount /dev/sdb # cat debian-edu-7.1+edu0-USB.iso > /dev/sdb ; sync
Creazione del supporto di installazione (Windows)
Il check di integrità dell'immagine scaricata può essere eseguito con l'utility gratuita winMD5Sum, mentre la masterizzazione del CD usare uno dei seguenti programmi.
Mentre uno dei pochi software in grado di creare un pendrive USB effettivamente funzionante è PowerISO (gratuito/nag screen). Si consiglia la vecchia versione 4.9 che non installa adware. Lanciato il programma, dal menù "Strumenti > Create Bootable USB driver" sarà possibile creare il proprio pendrive avviabile con l'installer Debian edu.
Fase di installazione
La fase di installazione, anche se fatta da supporto CD/USB, richiede una connessione internet funzionante. In questa fase, anche se non necessario, è comunque preferibile avere già interposto e configurato correttamente il router come descritto sopra, così da testare la funzionalità del router stesso.
La procedura di seguito descritta fa riferimento a una CPU server a 64 bit e a una singola unità disco (ovvero un array di dischi in RAID gestiti da un controller hardware). Per un'eventuale configurazione RAID software fare riferimento alle Guide: 1,2 e 3; quindi non a questa procedura.
Scelta del dispositivo di boot
All'avvio del server occorrerà selezionare il boot device, premendo un tasto generalmente indicato sullo schermo all'avvio del sistema (es. F11). Il dispositivo di boot dovrà essere il lettore CD oppure l'USB se si sta usando come supporto di installazione, rispettivamente, un CD-ROM oppure un pendrive. Nel caso il sistema non faccia il boot da USB, consultare il manuale del proprio server su come attivare la funzionalità USB boot.
Scelta di xfce come desktop per i client
Al boot di installazione, selezionare con i tasti freccia “64 bit install”, quindi premere il tasto Tab e modificare il seguente parametro: desktop=xfce. In questo modo i client avranno come desktop predefinito xfce4, che è notoriamente più leggero di Gnome e KDE.
Alcune note su questo step:
- Non modificando il parametro desktop verrà installato KDE anche per i client; opzione al momento sconsigliata in quanto c'è un bug non fissato che provoca un elevato tempo di avvio dei client.
- Le installazioni fatte mediante CD/USB, pur impostando desktop=xfce, installeranno comunque anche gnome, che costituirà la sessione predefinita per gli accessi locali (sui client invece ci sarà comunque xfce). L'installazione fatta mediante ISO netinstall, invece, installa solo il desktop richiesto.
- E' possibile selezionare anche la modalità "Expert install", ma solo se effettivamente si sa bene cosa selezionare; diversamente ci si può ritrovare, dopo ore di lavoro, con un'installazione incompleta o non funzionante.
Successivamente l'installazione chiederà l'impostazione della lingua, della tastiera e configurerà la rete per lo scaricamento dei pacchetti.
Scelta dei profili da installare
Verrà quindi presentato il menù per la scelta dei profili Debian edu da installare. Se non si hanno ulteriori esigenze lasciare le impostazioni predefinite ossia: 1) Server principale 2) Workstation 3) Server thin client
Richiesta di partizionamento guidato con LVM
Selezionare "Si" alla successiva richiesta: “Sicuri di usare il partizionamento guidato?”. In questo modo l'installer configurerà automaticamente il disco con LVM secondo la particolare struttura della Debian edu (es. un volume logico verrà assegnato al punto di mount /skole/tjener/home0
che rappresenta la directory radice delle home dir. degli utenti)
Monitoraggio dello stato di installazione con la console virtuale
Durante l'intero processo di installazione è possibile attivare delle console virtuali in particolare:
Alt+F4:
console syslog (stato download pacchetti, estrazione, configurazione ecc.)Alt+F1:
ritorna all'installer
Creazione del primo utente
Dopo la richiesta di partecipare all'indagine sull'uso dei pacchetti (va bene lasciare il NO predefinito), si arriverà alla creazione del primo utente, che costituirà l'utente amministratore, abilitato al sudo e all'uso di GOsa, lo strumento di amministrazione usato da Debian edu. Si consiglia di non scegliere la password uguale al nome utente, non solo per ovvi motivi di sicurezza, ma anche perché è capitato che non venisse creato effettivamente l'utente.
Creazione del sistema thin client e conclusione dell'installazione
Successivamente all'installazione del sistema base, si arriva allo stage: "Creazione del sistema thin client", che è quello che dura più in assoluto dell'intero processo di installazione. La barra di avanzamento si ferma al 85%, per qualche ora, dando l'impressione che l'installazione sia in stallo. Non è così, come è possibile controllare aprendo la console virtuale Alt+F4
Se tutto è andato per il meglio, si arriverà alla conclusione dell'installazione e al riavvio del sistema:
Primo avvio
Al boot comparirà il classico grub menù in stile Debian-edu 7:
e quindi la schermata di login, in cui si consiglia di selezionare la sessione xfce, potrebbe essere avviato di default Gnome (nel post-install verrà definito xfce come DE predefinito)
Dopo la scelta predefinita del pannello xfce, il primo desktop in tutta la sua semplicità ed efficienza (provare per credere ;-).
Post-installazione
Di seguito la sequenza di passi che è stata seguita per la fase di post-installazione.
N.B. I comandi elencati di seguito vanno eseguiti dall'utente iniziale (o da qualsiasi altro utente abilitato a sudo) e nell'ordine in cui sono descritti
Sincronizzare la lista dei pacchetti disponibili
Fra versione installata e versione corrente ci potrebbero essere delle differenze nella lista dei pacchetti. Questi comandi si sono resi necessari dopo l'installazione (effettuata con l'immagine USB.iso) al fine di evitare errori e warning nell'uso di apt e dpkg:
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
Aggiornare etckeeper
Assicurarsi che sia installata la versione più recente della la 0.63 installata di default.
wget http://http.debian.net/debian/pool/main/e/etckeeper/etckeeper_1.13_all.deb sudo dpkg -i etckeeper_1.13_all.deb rm etckeeper_1.13_all.deb
Aggiornare os del server
sudo apt-get -y update sudo apt-get -y upgrade
Aggiornare os dei fat client
sudo ltsp-chroot -m apt-get -y update sudo ltsp-chroot -m apt-get -y upgrade sudo ltsp-update-kernels
Installare killer,gksu, git
Cron ogni ora lancia lo script killer, il quale 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 -y install killer gksu gitk
Installare localizzazioni/stili
Installare lo stile gtk per la gui di open-office e la lingua italiana, anche per chromium:
sudo ltsp-chroot -m apt-get -y install libreoffice-gtk libreoffice-l10n-it chromium-l10n sudo apt-get -y install libreoffice-gtk libreoffice-l10n-it chromium-l10n
Installare OpenJDK 7
Sul server e per i fat client risulta già installato il JRE 6, che conviene rimanere; anche se si vuole usare il JRE/JDK 7 è bene installare anche JRE/JDK 6 (richiesto da alcuni programmi) per poi impostare di default le versioni 7. Invece il plugin icedtea versione 6 va tolto perché va in conflitto con l'omologo della 7.
sudo apt-get -y remove icedtea-6-plugin sudo apt-get -y install default-jdk icedtea-7-plugin openjdk-7-jdk
Configurare quindi il JRE predefinito:
sudo update-alternatives --config java
scegliendo: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
e il JDK predefinito:
sudo update-alternatives --config javac
scegliendo: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Ripetere la stessa installazione per i fat client:
sudo ltsp-chroot -m apt-get -y remove icedtea-6-plugin sudo ltsp-chroot -m apt-get -y install openjdk-7-jdk icedtea-7-plugin openjdk-7-jdk
Configurare quindi il JRE predefinito sui client:
sudo ltsp-chroot -m update-alternatives --config java
scegliendo: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
e il JDK predefinito:
sudo ltsp-chroot -m update-alternatives --config javac
scegliendo: /usr/lib/jvm/java-7-openjdk-i386/bin/javac
Installare strumenti e ambienti di sviluppo
Installazione di g++, gcc e geany
sudo ltsp-chroot -m apt-get -y install g++ geany sudo apt-get -y install g++ geany
Installare LAMP
Occorre installare solo MySQL server e client (PHP e già installato e Apache già preconfigurato per lo sviluppo PHP/mysqli). Al termine dell'installazione di mysql-server verrà richiesta la creazione di una password per l'utente root di mysql.
sudo ltsp-chroot -m apt-get -y install mysql-client sudo apt-get -y install mysql-server mysql-client
Impostare xfce di default anche per le sessioni locali
L'installazione da CD/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
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. Questo step può essere saltato se nel laboratorio non si fa sviluppo di pagine web e CGI
sudo mkdir /etc/skel/public_html sudo mkdir /etc/skel/public_html/cgi-bin
Abilitare home page utenti (web e cgi-bin)
Le directory ~/public_html
e ~/public_html/cgi-bin
automaticamente create per ogni nuovo utente, hanno già correttamente impostati i permessi (755).
Per il solo utente iniziale (creato durante l'installazione), occorrerà creare le directory ~/public_html
e ~/public_html/cgi-bin
e impostare
$ cd ~$ mkdir public_html ~$ chmod 755 public_html ~$ mkdir public_html/cgi-bin ~$ chmod 755 public_html/cgi-bin ~$ chmod o+x ~
Pasare a root:
$ su -
Ed eseguire:
cd /etc/apache2/mods-enabled/ cp userdir.conf userdir.orig.conf vi userdir.conf
Nell'editor sostituire la riga:
<Directory /home/*/public_html/>
con
<Directory /skole/tjener/home*/*/public_html/>
Inoltre aggiungere in coda allo stesso file file la seguente direttiva:
<Directory /skole/tjener/home*/*/public_html/cgi-bin/> Options ExecCGI SetHandler cgi-script </Directory>
Riavviare quindi il demone httpd ed uscire da root:
service apache2 restart exit
Test spazio web e CGI degli utente
Test web
Creare una pagina indicedi prova:
vi ~/public_html/index.html
<HTML>
<BODY>
Prova web utente </BODY>
</HTML>
Test CGI
Creare un nuovo file di prova hello.c
cd ~/public_html/cgi-bin/ vi hello.c
#include <stdio.h> int main(void) { printf("Content-Type:text/html\n\n"); printf("Hello World!"); return 0; }
Compilarlo:
$ gcc -o hello.cgi hello.c
Eseguirlo sul server web:
http://www/~userid/cgi-bin/hello.cgi
Installare un nuovo pacchetto per i fat client
sudo ltsp-chroot -m apt-get install nomepacchetto
Installare un nuovo pacchetto sul server (e quindi anche per i thin client)
sudo apt-get install nomepacchetto
Amministrazione con GOsa2
Modificare i modelli "newteacher" e "newstudent"
Scegliere un userid diverso da quelli proposti
Creare un nuovo utente
Importare una lista di nuovi utenti (es. classe)
Cambiare la password utente
Abilitare un utente al sudo
Assegnare a un client IP e nome univoci
Guida scritta da: Franziski | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |