FUSS Server

fuss-server è uno script python che lancia un playbook ansible che configura una macchina per poter funzionare come server in una rete FUSS.

fuss-server

Lo script fuss-server è scritto per essere compatibile con python 2 e 3; nel momento in cui ansible passerà ad usare python 3 si potrà eliminare la compatibilità python 2.

I vari sottocomandi corrispondono alle funzioni con lo stesso nome e generalmente si concludono con l”os.execvp di un comando di shell per lanciare ansible; notare che questo termina l’esecuzione del programma python, eventuale codice successivo non viene eseguito.

Playbook

Ansible viene chiamato con uno dei seguenti playbook, a seconda del sottocomando usato:

create.yml

per configurare da zero un fuss-server.

upgrade.yml

per aggiornare la configurazione di un fuss-server.

captive_portal.yml

per applicare la configurazione aggiuntiva necessaria sui captive portal.

purge.yml

per eliminare la configurazione del fuss-server.

Quest’ultimo ripristina alcuni file di configurazione dai backup, gli altri non compiono direttamente azioni, ma richiamano ruoli dalla directory roles, in modo da poter condividere il codice, in particolare tra create e upgrade.

Pacchetti Debian

Il repository prevede la generazione di due pacchetti .deb, fuss-server e fuss-server-dependencies; il primo contiene il fuss-server vero e proprio, mentre il secondo è un metapacchetto che dipende da tutti i pacchetti installati dal playbook ansible.

fuss-server-dependencies non è necessario per l’uso di fuss-server, ma è aggiunto per comodità per pre-installare (e soprattutto pre-scaricare) tutti i pacchetti necessari.

Per le istruzioni su come buildare i pacchetti e caricarli su archive.fuss.bz.it si può vedere l’articolo Pacchetti e Repository

Numeri di versione

Il pacchetto fuss-server è nativo, quindi il numero di versione è del tipo X.Y.Z dove X è il numero di versione debian corrispondente (ad esempio 8 per jessie, 9 per stretch, 10 per buster).

Dipendenze

Alcune delle dipendenze del pacchetto fuss-server, in particolare ansible (nella versione richiesta) e python-ruamel.yaml sono disponibili solo in jessie-backports; per installare il pacchetto è necessario aver abilitato quel repository, e per usarlo è necessario avere anche il repository di FUSS.