Il 20 ottobre 2016 si è tenuto il workshop "Il server FUSS: struttura, filosofia progettuale e casi d'uso" con relatore il nostro Christopher Gabriel presso la Scuola Professionale "Luigi Einaudi di Bolzano. Durante l'incontro è stata fatta una panoramica tecnica della soluzione software FUSS Server, per creare, configurare e gestire in maniera semplice e immediata un laboratorio informatico in rete.
Relatore: Christopher R. Gabriel
Evento: Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso - 20 Ottobre 2016
Organizzatore: Linux User Group Bolzano-Bozen-Bulsan
Luogo: Bolzano, Italia
3. 20/10/2016 Fuss Server
Perchè
● Luglio/Agosto 2005: migrazione completa
a software libero di tutte le scuole in
lingua italiana dell'Alto Adige.
● Schema standard presente all'interno della
rete delle singole scuole, da replicare e
estendere usando solo software libero
● Realizzare un modello standard che
soddisfi i requisiti richiesto dalla
Intendenza Scolastica
4. 20/10/2016 Fuss Server
Requisiti
● La soluzione software è stata realizzata a
partire dai requisiti relativi a:
– Attuazione della migrazione
– Trasferimento di competenze e formazione
– Rapidità di deploy e ripristino
– Mantenimento degli standard e delle policy
della distribuzione GNU/Linux adottata
(Debian 3.1)
– Redistribuzione delle soluzioni tecniche e
aggiornamento continuo dei requisiti tecnici
5. 20/10/2016 Fuss Server
Migrazione
● Installazione di tutti i servizi necessari
● Applicazione delle configurazioni
prestabilite
● Migrazione dati utenti/gruppi/ruoli etc da
AD
● Adeguamento continuo sulle
problematiche riscontrate e non
individuate in fase di analisi/sopralluogo.
6. 20/10/2016 Fuss Server
Formazione
● Per ridurre al minimo l'effort formativo
necessario, la soluzione deve
automatizzare al massimo tutte le
procedure di installazione e
configurazione
● Formazione e trasferimento di
competenze verso referenti tecnici del
progetto, per approfondimenti sulla
struttura e la configurazione specifica a
partire dal modello base.
7. 20/10/2016 Fuss Server
Rapidità di installazione e ripristino
● 83 server in circa un mese (oltre ai ~2300
client).
● Ultima spiaggia per risoluzione dei
problemi, ripetere l'installazione.
● Ridurre downtime al massimo, HA in ogni
caso (nel 2005) non necessario.
● Minimizzare la quantità di lavoro del
referente tecnico della scuola.
8. 20/10/2016 Fuss Server
Standard e policy
● Utilizzare soluzioni standard
● Rispettare criteri e policy della distribuzione
● Integrazione totale
● Nessuna ingerenza e/o introduzione di
vincoli o forzature rispetto alla flessibilità di
configurazione
( SuSE Yast, anyone? <g> )
● Un punto di partenza e non di arrivo
9. 20/10/2016 Fuss Server
Redistribuzione
● Necessario automatizzare la
redistribuzione dei cambiamenti
successivi in termini di:
– Politiche di configurazione
– Nuove integrazioni software
– Tools
– Documentazione
10. 20/10/2016 Fuss Server
Soluzione software
● Pacchetto debian fuss-server:
– Software necessari per l'ambiente server
espressi tramite dipendenze
– Template di file di configurazione
– “Wizard” con 8 domande totali per
personalizzazione di base
– Script di automazione
– Applicazione fuss-server per attuazione della
configurazione
11. 20/10/2016 Fuss Server
Soluzione software
● Dati richiesti all'operatore:
– Interfaccia di rete LAN e WAN
– Rete locale
– Range indirizzi dinamici DHCP
– Domanio locale
– Workgroup
– Denominazione struttura
– Master password
12. 20/10/2016 Fuss Server
Modello rete
● Il modello è standardizzato per ogni
singola scuola
FUSS
SERVER
Rete esterna
LANRouter
WIFI NETWORK
13. 20/10/2016 Fuss Server
Requisiti Rete
● La macchina server deve prevedere un
minimo di 2 interfacce di rete fisica
(LAN/green, WAN/red) con l'opzione di una
terza per la gestione dell'ambito WIFI/blue.
● WAN può usare DHCP o indirizzamento
statico: la sua configurazione specifica è
demandata agli strumenti della distribuzione.
● LAN è decisa autonomamente rispetto al
contesto locale, sia per indirizzamento che
per dimensioni
14. 20/10/2016 Fuss Server
Servizi
● FUSS Server si preoccupa di configurare
uno stack standard di servizi, partendo
dai template forniti dal pacchetto stesso.
● I template sono elaborati
dall'applicazione fuss-server utilizzando i
dati di configurazione forniti tramite il
Wizard
● Fornisce, tramite le dipendenze, tutto i
pacchetti software necessari.
15. 20/10/2016 Fuss Server
Servizi
● LDAP - Autenticazione centralizzata
● DNS - Gestione host rete locale e cache
per rete pubblica
● DHCP - Range configurabile per
indirizzamento dinamico, con auto-update
del DNS.
● Network File System - Condivisione sulla
rete LAN delle directory home degli utenti
● Windows Primary Domain Controller
16. 20/10/2016 Fuss Server
Servizi
● Apache HTTPD Web server
● IP stateful firewall e router
● HTTP Proxy Cache
● HTTP Proxy Content Filter
● Proxy Secure Shell
Tutti i servizi sono implementati con componenti
standard disponibili sul sistema, l'automazione
riguarda la configurazione di questi. Ogni
personalizzazione successiva è permessa per
adattarsi al contesto specifico.
17. 20/10/2016 Fuss Server
Fuss Server
# fuss-server create
Avvia il processo di configurazione dei
servizi a partire dal file di configurazione
/etc/fuss-server/fuss-server.conf
Se il file di configurazione non è presente
o non contiene le informazioni richieste,
viene avviato wizard di configurazione
18. 20/10/2016 Fuss Server
Fuss Client
● Obiettivo: ridurre al minimo complessità,
tempo e difficoltà di installazione di una
postazione client GNU/Linux, per inserirla
nel contesto di una rete gestita da un Fuss
Server
● Installa tutti i componenti software
necessari
● Esegue la configurazione della macchina a
partire dalle informazioni fornite dal server
FUSS
19. 20/10/2016 Fuss Server
FUSS Client - Configurazione
● Autenticazione degli utenti tramite server
LDAP
● Download e installazione dei certificati SSL
necessari
● Mount delle directory HOME tramite NFS
● Installazione chiavi di autenticazione SSH
● Sincronizzazione NSCD
● Inserimento in configurazione cluster
● Creazione di utente locale di amministrazione
20. 20/10/2016 Fuss Server
FUSS Client - Configurazione
● Configurazione minimale ambiente
desktop
● Registrazione su server DHCP/DNS
● Rimozione di utenze locali di
test/installazione
Tutte le operazioni possono essere
annullate, riportando la macchina allo
stato iniziale.
21. 20/10/2016 Fuss Server
FUSS Client - Opzioni
● -n Non utilizzo di HOME condivise, ma
creazione di directory locali
● -a Configurazione della postazione
● -r Annulla la configurazione della
postazione
● -g Specifica cluster/gruppo di client di
appartenenza
22. 20/10/2016 Fuss Server
Cluster?
● Cluster: indica un gruppo di macchine
presenti sulla Lan. Questa configurazione, in
parte automatizzata, permette l'utilizzo di
strumenti (già installati) per facilitare
l'amministrazione di gruppi di macchine. Ad
esempio, posso creare un cluster di macchine
per ogni aula presente nella scuola.
● Oltre agli strumenti integrati, possono essere
gestiti tramite tool di terze parti (es.
cluster-ssh)
23. 20/10/2016 Fuss Server
2006: Octofuss Suite
● Suite di applicazioni di gestione e raccolta
dati
● Componenti client: octofuss, octofuss-
ctl, octofuss-client (, octonet)
● Componente server: octofussd
● Struttura client/server su API HTTP simil-
REST
● Strutturato per plugin
● Autorizzazioni per singolo plugin
24. 20/10/2016 Fuss Server
octofussd
● Installato su FUSS Server, responsabile
della gestione e distribuzione dei dati, e
di eseguire task di amministrazione
● Tutti i plugin vengono inseriti in un albero
dati coerente
● Operazioni simil-REST (xmlrpc + json):
– Navigazione: cd, list, ls
– Gestione: create, delete, get, has, set
– Varie: doc, has, quit
25. 20/10/2016 Fuss Server
Octofuss Tree
$ octofussctl http://192.168.84.9:13400/conf/
Username: root
Password:
Welcome to the octofussd client. Queries are sent to http://192.168.84.9:13400/conf/
/> ls
contentfilter
samba
users
netperms
firewall
computers
auth
serverinfo
cluster
hostqueue
userlog
upgrades
services
scripts
avahicomputers
/> ls /users/users/
admin
nobody
/> ls /computers
:actions:
workstation1
server
ubuntu
27. 20/10/2016 Fuss Server
octofuss-client
● Componente installato su tutti le
macchine client, per la comunicazione
verso octofussd in modo trasparente
● Trasmette dati relativi alla macchina per
aggregazione sul server, ed eventuale
trasmissione successiva
● Riceve istruzioni e comandi da
octofussd
28. 20/10/2016 Fuss Server
octofuss
● Accesso a octofussd tramite interfaccia
grafica Gtk/X-Window
● Utilizzabile tramite tunnel di rete
● Componenti attivati sulla base di quanto
offerto dal server e dalle autorizzazioni
per l'utente
● Permette facilmente la delega alla
gestione di aspetti della rete
29. 20/10/2016 Fuss Server
octofussctl
● Accesso a octofussd tramite CLI
● Permette esecuzione di operazioni
complesse in batch, tramite scripts
● Utilizzabile da remoto con minor utilizzo
di banda
● OCTOFUSS_USER / OCTOFUSS_PASSWORD
nell'enviroment per automatizzare il
processo di autenticazione.