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.