La cosa è descritta nel documento LTSP_ubuntu_per_scuola.odt sezione "Gestione classi"

In generale, mentre gli script di installazione provvedono a creare e impostare un'installazione generica di LTSP, quello di gestione delle classi è invece orientato ad un uso scolastico ed alla gestione sia degli account (creazione, modifica ed eliminazione), sia della risistemazione delle impostazioni del desktop dell'utente (nel caso vengano erroneamente manomesse).
Inoltre gli studenti vengono associati ad un gruppo che ne rappresenta la classe, e vi sono funzionalità per gestirne a fine anno la "promozione" al gruppo che rappresenta la classe successiva.
Per problemi di tempo e risorse lo script è solo testuale (non ha interfaccia grafica), ma è comunque abbastanza semplice da usare per un utente smaliziato e intraprendente.

Più tecnicamente, l'idea base è di utilizzare quanto più possibile le caratteristiche native di GNU/Linux senza avere informazioni parallele sulle caratteristiche di ciascun account. Per l'autenticazione ci si appoggia a quella nativa del server (niente LDAP) e per le autorizzazioni si fa uso di più gruppi e delle ACL (access control list) attivate nel file system (ext4).
Gli account sono organizzati nel seguente modo. La differenziazione principale è fra gli account che fanno parte del gruppo “insegnante”, e che possono diventare root tramite sudo, e quelli degli studenti che appartengono al gruppo “studente”.
Per ogni account il gruppo primario è creato uguale al login. L'insegnante sarà anche membro del gruppo 'insegnante' e lo studente di quello 'studente' oltre che del gruppo relativo alla sua classe (es. cls-2c se della classe '2c'). L'uso del prefisso “cls-” permette al programma di gestione di identificare l'appartenenza ad una determinata classe semplicemente scorrendo gli utenti membri di tale gruppo.
Sono inoltre create delle directory sotto /srv.
- /srv/condivisi a cui insegnanti e studenti possono accedere e scrivere
- /srv/leggi gli insegnanti leggono e scrivono, gli studenti leggono solo
- /srv/classi con tante directory quante sono le classi, e sono linkate le home dei relativi studenti
(N.B. leggere il documento citato per i limiti dovuti all'ACL di GNU/Linux)

Maggiori dettagli tecnici sul funzionamento di LTSP, magari con grafici etc.

Chat IRC su freenode:

#ltsp

Link utili:

Sito ufficiale del progetto:

http://www.ltsp.org/

Programma supervisione laboratorio:

http://www.epoptes.org/

Distribuzione GNU/Linux, usare la versione 12.04 LTS (Long Term Support = supportata per lungo tempo):

http://www.kubuntu.org/

LTSP sta per Linux Terminal Server Project, ovvero progetto per GNU/Linux come server per terminali. In sostanza si tratta di avere un computer centrale (server) dove sono stati creati tutti gli utenti e dove è installato e configurato il software. I vari terminali saranno computer privi di hard disk e collegati via rete locale che faranno l'avvio del sistema operativo GNU/Linux, il login e utilizzeranno i programmi tutto via rete.

Per facilitare l'installazione e la configurazione di LTSP su un server GNU/Linux con la distribuzione Kubuntu/Ubuntu 12.04, ed ora la 14.04, ho preparato una serie di script in linguaggio Ruby (licenza GPL v3), scaricabili come file .zip qui:
ltsp_server_installa_e_configura.zip
e che contiene il file di testo ORDINE_ESECUZIONE.txt che spiega con che sequenza eseguirli. Il tutto comunque è spiegato meglio nella pagina di questo sito dedicata all'installazione.

Rendo disponibile in licenza Creative Commons anche quanto ho finora scoperto ed elaborato sul tema in questo file:
LTSP_ubuntu_per_scuola.odt

Sia gli script sia il documento con le informazioni vengono spesso affinati e/o corretti, per cui invito a scaricare sempre la versione più aggiornata ogni volta che si voglia installare un nuovo server LTSP.

Appena possibile metterò il codice in Github, così da permettere una più agevole gestione delle migliorie ed aprire la collaborazione a terzi.

Ultima nota, gli script sono stati creati per Kubuntu, quindi l'ambiente grafico KDE, ma sono stati poi in gran parte generalizzati per poter essere usati con Ubuntu e gnome-fallback, o Lubuntu (LXDE) o Xubuntu (Xfce). Queste ultime due distribuzioni non sono però al momento ancora state da me testate (caveat emptor...)

Happy hacking a tutti!

Scuola: aula computer basata su software libero

Obiettivi:

  • far conoscere agli studenti il Software Libero ampliando i loro orizzonti nel campo dell'informatica e negli approcci collaborativi e di condivisione del sapere

  • offrire agli insegnanti un sistema stabile e solido, dove possano agire con tranquillità e per il quale eventuali errori abbiano conseguenze limitate

  • permettere agli insegnanti di concentrarsi sulla didattica e non sugli aspetti tecnici o sul ripristino di situazioni compromesse da virus o da manomissioni accidentali e non

  • evitare dipendenze della scuola da software proprietario e relative licenze / aggiornamenti forzati

  • ridurre i costi nel medio e lungo periodo

  • uniformità degli strumenti: si può aggiornare tutti i computer, vecchi e nuovi, alla stessa versione del software e farlo solo quando se ne senta l'esigenza

Una soluzione interamente basata su Software Libero, software che rispetta la libertà dell'utente garantendo le 4 libertà fondamentali: libertà di eseguire il programma per qualunque scopo; libertà di modificarlo per adattarlo alle proprie esigenze; libertà di distribuirne copie ad altri; libertà di poter distribuire copie della propria versione modificata.

 Grazie a questo, il software libero è particolarmente importante nella scuola in quanto:

  • non pone limiti al sapere. Non si tratta difatti di conoscenza tenuta segreta ma al contrario di sapere reso disponibile a tutti. Alla curiosità dello studente su come funziona un determinato programma l'insegnante potrà dire: “qui c'è il codice sorgente, puoi studiarlo e sapere come funziona” e non: “è un segreto, non ti è permesso conoscerlo”

  • favorisce l'insegnamento dello spirito del buon cittadino, la solidarietà sociale e lo spirito di collaborazione. E' incoraggiato lo scambio dei programmi e delle migliorie eventualmente apportate, per aiutare i propri amici e la propria comunità

  • favorisce la consapevolezza che il computer nella sua essenza è “una macchina programmabile”, uno strumento che può (deve) essere usato da protagonisti e non da meri fruitori/utilizzatori passivi. Per usare un paragone automobilistico, con il software proprietario si viaggia sui sedili posteriori e con i vetri oscurati, andando dove l'autista (il programma) ci porta secondo possibilità e limiti da lui imposti, e che vengono oggigiorno percepiti come “limiti in sé”, accettati senza spirito critico. Con il software libero siamo noi alla guida

  • educa alla legalità, in quanto la licenza del software libero ne permette l'uso per qualsiasi scopo e lo scambio, rendendo inutile il ricorso a “copie pirata”

  • permette di preparare la futura generazione di informatici e programmatori, perché si diventa buoni programmatori solo leggendo e scrivendo molto codice e potendo accedere a progetti complessi da cui imparare le tecniche più sofisticate. Solo il software libero rende disponibile il codice sorgente e incentiva lo sviluppo collaborativo

 

E' importante in generale in quanto:

  • evita la dipendenza da un unico fornitore poiché chiunque può acquisire le conoscenze e la competenza per fornire assistenza qualificata e/o modificare i programmi

  • salva i dati con formati aperti, così che ne sia garantita la leggibilità in futuro e che non siano necessariamente vincolati ad un determinato programma

  • favorisce lo sviluppo di una cultura ed una economia informatica locale, in quanto verranno presumibilmente preferite competenze sul proprio territorio rispetto a quelle in altri stati o continenti

  • se compresa come opportunità di investimento e non mero risparmio economico immediato, favorisce l'impiego di capitali per pagare persone e non licenze, per finanziare migliorie specifiche di cui si ha bisogno (e di cui tutti potranno beneficiare, con mutuo vantaggio) e non costosi aggiornamenti generici decisi da altri

 

Da un punto di vista pratico immediato:

  • soluzione solida e duratura: GNU/Linux è notoriamente un sistema estremamente solido e versatile, non per nulla è utilizzato dalla quasi totalità dei 500 computer più potenti al mondo ed impiegato per fornire la maggior parte dei servizi internet

  • nessuna paura che sia sfuggita qualche installazione priva di licenza o in difformità con la stessa, e quindi nessun rischio di consistenti sanzioni pecuniarie e, soprattutto, penali

  • ci si concentra sul “come fare” e non sulla propedeutica analisi di quali e quante licenze siano necessarie e sul loro costo. I limiti sono quindi solo tecnici (“si può fare?”), non legali ed economici (“è concesso farlo con la licenza che possiedo? Se serve una diversa licenza, è disponibile e a che costi?”)

  • nessun aggiornamento forzato: non si devono seguire le “esigenze di mercato” che dichiarano obsoleti programmi ancora perfettamente adatti ai nostri scopi e rendono disponibili solo le nuove versioni. Si aggiorna quando lo si reputa opportuno

  • possibilità per docenti e studenti di avere gli stessi programmi a casa: chiunque può procurarsene una copia e installarlo nel computer di casa, è perfettamente legale. Vi è inoltre la possibilità per la scuola di fornire chiavette USB con preinstallato GNU/Linux e tutti i programmi usati a scuola, rendendo possibile un avvio indipendente e senza rischi rispetto al software già presente nel computer domestico

  • minor obsolescenza dell'hardware: tendenzialmente il software libero cerca di funzionare in modo efficiente piuttosto che richiedere l'acquistare di computer più potenti

  • tranquillità rispetto ai virus: progettato fin da subito per la multiutenza, la rete e la rigida protezione del sistema da operazioni indebite, non è praticamente afflitto dalla piaga dei virus che notoriamente imperversano nei sistemi operativi Microsoft

  • ogni studente ha il suo account (nome utente e password), e quindi utilizza il suo ambiente esclusivo e personalizzabile, non legato al PC. Questo comporta numerosi vantaggi:

    • lo studente può utilizzare qualunque dei PC in aula e ritrovare i suoi dati e le sue configurazioni preferite

    • i computer sono facilmente sostituibili in caso di guasto o incrementabili di numero, basta impostarli una tantum per la partenza da rete, riaccenderli e sono subito pienamente utilizzabili

    • le impostazioni particolari, es. il mouse configurato per mancini, non avranno ripercussioni sugli altri utilizzatori dello stesso computer, essendo legate all'utente

    • lo studente è maggiormente responsabilizzato e sente di usare il “suo” sistema. Nel contempo non viene mortificata la sua voglia di esplorare grazie all'utility che permette al docente di riportarlo all'occorrenza alla configurazione base funzionante, senza perdita di dati

  • si possono acquistare PC privi di hard disk e sistema operativo preinstallato (il cui costo è spesso ignorato in quanto “annegato” nel costo del computer, ma non è trascurabile)

  • il desktop manager KDE (l'interfaccia grafica) è semplicemente meraviglioso a vedersi e piacevole ed efficace ad utilizzarsi, un vero gioiello

 

Dettagli tecnici della soluzione proposta:

  • basata su GNU/Linux, distribuzione Kubuntu 12.04 “Precise Pangolin”, con accesso alla grandissima quantità di software libero a corredo di tale distribuzione

  • prevede una potente workstation/server centrale ad uso del docente e “n” computer satellite (“client”), collegati via rete (switch Gbit), per gli studenti

  • configurazione LTSP thin/fat client. In questo modo i computer meno potenti possono funzionare utilizzando le risorse del server, mentre quelli più dotati possono eseguire le elaborazioni autonomamente senza sovraccaricare il sistema

  • installazione e configurazione centralizzata del sistema operativo e dei programmi utilizzati sia dal server sia dai client

  • memorizzazione centralizzata dei dati

  • policy di accesso per cui gli studenti possono vedere solo i propri dati, mentre gli insegnanti possono accedere a quelli di tutti gli studenti

  • proxy http (squid) per un migliore uso della banda verso internet

  • filtraggio opzionale dei contenuti web (dansguardian)

  • firewall opzionale con possibilità di bloccare il traffico indesiderato da e verso internet

  • utility di creazione e gestione della classe, con importazione dei nomi da file csv (creabili ad esempio con LibreOffice Calc), generazione automatica degli account e delle password a due livelli di complessità opzionali (semplice con parole bisillabe per le elementari, complesse per medie e superiori), spostamento degli studenti da una classe ad un'altra, promozione, eliminazione a fine ciclo scolastico

  • utility che permette al docente di far uscire forzatamente dal sistema un utente bloccato e di ripristinare ai valori base il suo desktop qualora lo avesse modificato a tal punto da rendendolo inutilizzabile

  • monitoraggio dell'aula tramite programma Epoptes, ottimizzato per LTSP. Tale programma permette fra le altre cose al docente di vedere quanto accade sul computer dei singoli studenti, “diffondere” quanto visualizzato sul proprio desktop a tutti gli studenti, intervenire aiutando uno studente, bloccare temporaneamente l'uso del computer per richiamare l'attenzione e molto altro

  • backup dei contenuti e delle configurazioni: periodicamente (settimanalmente) viene fatta copia incrementale di tutte le cartelle degli utenti, siano essi docenti o studenti, di quelle condivise e dei file di configurazione sul secondo hard disk interno. In questo modo è sia possibile recuperare file accidentalmente cancellati, sia ripristinare rapidamente il sistema in caso di guasti gravi

 Altro... più avanti.