Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso

30
20/10/2016 Fuss Server FUSS Server 20 Ottobre 2016 LugBz workshop @ CTS Einaudi Christopher R. Gabriel Truelite © 2016 Truelite Srl - La copia letterale e la distribuzione del materiale qui raccolto nella sua integrità sono permesse con qualsiasi mezzo, a condizione che questa nota sia riprodotta.

Transcript of Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso

20/10/2016 Fuss Server

FUSS Server

20 Ottobre 2016

LugBz workshop @ CTS Einaudi

Christopher R. Gabriel

Truelite

© 2016 Truelite Srl - La copia letterale e la distribuzione del materiale qui raccolto nella sua integrità sono permesse con qualsiasi mezzo, a condizione che questa nota sia riprodotta.

20/10/2016 Fuss Server

Agenda

● Perchè● Requisiti● La soluzione software● Componenti e architettura tecnica● Futuro?

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

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

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.

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.

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.

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

20/10/2016 Fuss Server

Redistribuzione

● Necessario automatizzare la redistribuzione dei cambiamenti successivi in termini di:– Politiche di configurazione

– Nuove integrazioni software

– Tools

– Documentazione

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

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

20/10/2016 Fuss Server

Modello rete

● Il modello è standardizzato per ogni singola scuola

FUSSSERVER

Rete esterna

LANRouter

WIFI NETWORK

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

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.

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

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.

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

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

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/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.

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

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)

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

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

20/10/2016 Fuss Server

Octofuss Tree

$ octofussctl http://192.168.84.9:13400/conf/Username: rootPassword: Welcome to the octofussd client. Queries are sent to http://192.168.84.9:13400/conf//> lscontentfiltersambausersnetpermsfirewallcomputersauthserverinfoclusterhostqueueuserlogupgradesservicesscriptsavahicomputers/> ls /users/users/adminnobody/> ls /computers:actions:workstation1serverubuntu

20/10/2016 Fuss Server

Octofuss Tree

/> get /users/users/admin

{'uid': 'admin', 'loginShell': '/bin/false', 'enabled': False, 'gidNumber': '0', 'sambaPrimaryGroupSID': 'S-1-5-21-1529128530-807834107-4714568-512', 'sambaSID': 'S-1-5-21-1529128530-807834107-4714568-500', 'gecos': 'Netbios Domain Administrator', 'controllerGroup': None, 'homeDirectory': '/home/admin', 'uidNumber': '0', 'ou': None}

/> set /users/users/admin/loginShell /bin/bash

/> get /users/users/admin

{'uid': 'admin', 'loginShell': '/bin/bash', 'enabled': True, 'gidNumber': '0', 'sambaPrimaryGroupSID': 'S-1-5-21-1529128530-807834107-4714568-512', 'sambaSID': 'S-1-5-21-1529128530-807834107-4714568-500', 'gecos': 'Netbios Domain Administrator', 'controllerGroup': None, 'homeDirectory': '/home/admin', 'uidNumber': '0', 'ou': None}

/> cd /users/users/admin

/users/users/admin> get loginShell

/bin/bash

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

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

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.

20/10/2016 Fuss Server

Grazie

Grazie per l'attenzione!

Q & A