Gestione dei FUSS client
Configurazione di un FUSS Client
Per configurare una macchina come FUSS Client è disponibile il comando
fuss-client, installato col pacchetto omonimo, che cura tutta la
configurazione della macchina, e l’eventuale collegamento della stessa al
Fuss Server, installando il software necessario ed effettuando le relative
configurazioni.
Installazione ordinaria
Il comando principale per la configurazione del client è fuss-client -a
che esegue il collegamento ad un Fuss Server rilevato automaticamente nella
rete in cui è stata inserita la macchina.
Se si dispone di una chiavetta con una chiave di autenticazione per il Fuss Server questa deve essere inserita sulla macchina, e la procedura sarà completamente automatizzata, altrimenti una volta lanciato il comando dovrà essere immessa per tre volte la password di root del Fuss Server per consentire l’importazione delle credenziali necessarie.
Se non vi sono cluster definiti sul Fuss Server è necessario definirne preventivamente uno, se ne è definito soltanto uno non verrà chiesto nient’altro e l’installazione proseguirà direttamente fino alla fine, ottenendo sul terminale un risultato del tipo:
PLAY RECAP ****************************************************************
localhost : ok=129 changed=71 unreachable=0 failed=0
(dove si deve avere failed=0)
Se invece sul Fuss Server sono presenti più cluster all’inizio verrà chiesto di scegliere in quale essere inseriti con una schermata del tipo:
This server has several workstation groups
Please choose the one desired for this machine:
0 - aula1
1 - aula2
Your choice? (enter the server number)
0
...
Impostazione dell’hostname
Il comando fuss-client supporta la installazione ed il collegamento
al server di una macchina con la contestuale impostazione del nome della
stessa. Questo risulta utile quando un pc viene installato utilizzando
una immagine creata con clonezilla, che ha ovviamente impostato
l’hostname del client da cui la si è creata.
Inoltre, il comando fuss-client effettua una normalizzazione dei
nomi delle macchine, infatti in alcuni casi veniva usato come hostname
della macchina l’hostname completo (FQDN) della stessa, cosa che crea
poi problemi nella risoluzione dei nomi ed inseriva gli stessi nel file
/etc/clusters del server. Questo cosa poi aveva portato ad usare
come hostname completo (impostato in /etc/hosts) un nome semplice
senza dominio (cosa che potrebbe causare problemi con eventuali servizi
installati successivamente).
Quando si esegue l’installazione ed il collegamento al server di un client, il
comando che permette l’impostazione contestuale dell’hostname della macchina
usando l’opzione -H nella forma:
fuss-server -a -H clientname
dove clientname deve essere un nome a dominio alfanumerico che non deve
contenere nessun «.», ed essere indicato solo con lettere minuscole.
In tal caso il client, ottenuto il nome del dominio dal server, effettuerà la
corretta impostazione dei file /etc/hostname, inserendovi semplicemente il
nome indicato con un contenuto come:
clientname
mentre in /etc/hosts verrà inserito il corretto valore per la risoluzione
completa con un contenuto come:
127.0.1.1 clientname.institute.lan clientname
e si otterrà correttamente che:
root@testclient:~# hostname
clientname
root@testclient:~# hostname -f
clientname.institute.lan
ed in questo modo nel file /etc/clusters del server verrà usato il nome
della macchina.
Veyon
A partire da FUSS Client 10.0.40, la configurazione di Veyon viene fatta
in maniera completamente automatica estraendo i dati sui client da
/etc/clusters sul server FUSS.
Potranno utilizzare Veyon master , da qualsiasi postazione di uno
stesso cluster, solo gli utenti appartenenti al gruppo veyon-master
(che andranno pertanto opportunamente scelti ed associati al gruppo).
Per ragioni di sicurezza sono stati implementati dei controlli che facciano sì che non sia controllabile da qualcun altro attraverso Veyon nessun utente membro di almeno uno dei seguenti gruppi
- docenti
- insegnanti
- veyon-master
- tecnici
Qualora si volesse inibire ulteriori gruppi, sarà necessario creare il
file di testo /var/www/html/veyon/excluded_groups con, uno per
riga, i nomi dei gruppi.
Attenzione: questo file permette di fare l’override anche dei gruppi
pre-impostati, che andranno pertanto inseriti nel file
excluded_groups per evitare, ad esempio, il controllo sul gruppo
docenti.
Diverse funzionalità di Veyon tipo accensione e spegnimento dei PC, condivisione dello schermo del docente o aggiornamento dei PC non sono al momento fruibili e verranno nascoste dall’interfaccia con un prossimo aggiornamento.
Aggiornamenti
Aggiornamenti minori di fuss-client
Gli aggiornamenti minori (13.0.x → 13.0.(x+1)) di fuss-client vengono installati automaticamente tramite il meccanismo degli unattended upgrades, e applicati traminte una run quotidiana di fuss-client.
Per forzare un aggiornamento manuale immediato:
# apt update
# apt install fuss-client
e quindi lanciando:
# fuss-client -U
per applicare le nuove configurazioni.
Le informazioni presenti in /usr/share/doc/fuss-client/changelog.gz
(dopo l’installazione del pacchetto) possono essere utili per scoprire
se le modifiche sono utili per installazioni esistenti o se riguardano
solo le nuove installazioni.
Risoluzione di problemi
Diagnostica degli errori di fuss-client
Per poter risolvere eventuali problemi di installazione di un client durante
l’esecuzione di fuss-client è essenziale poter disporre del log completo
delle operazioni effettuate da ansible durante l’esecuzione, riportare solo
le righe finali del risultato non è sufficiente.
Per questo nel caso si presentino problemi è opportuno rilanciare il comando seguendo le indicazioni per registrare la sessione illustrate in Bug reporting.
Procedure alternative
Installazione su Debian 13 (trixie)
Fuss Client può essere installato su una Debian 13 (trixie) standard; in tal caso è necessario effettuare alcune configurazioni, sempre lavorando come root.
Installare Debian 13 (trixie) recuperando una delle seguenti ISO (a seconda dell’occorrenza):
Architettura
ISO xfce-desktop UFFICIALE
amd64
i386
Abilitare i repository fuss in
/etc/apt/source.list.d/fuss.sources:Types: deb deb-src URIs: http://archive.fuss.bz.it/ Suites: trixie Components: main contrib non-free Signed-By: /usr/share/keyrings/fuss-keyring.gpg
aggiungere la chiave di firma del repository e aggiornare apt:
# wget https://archive.fuss.bz.it/pool/main/f/fuss-archive-keyring/fuss-archive-keyring_0.20250620_all.deb # apt install ./fuss-archive-keyring_0.20250620_all.deb # apt update
ed infine, lanciare il programma fuss-client:
# fuss-client -a
Installazione standalone
fuss-client supporta anche una modalità di installazione standalone che non effettua il collegamento ad un fuss-server, ma si limita a configurare un’installazione di debian con i programmi e le personalizzazione del sistema fuss.
Per usarla, a partire da un’installazione pulita di Debian, è
sufficiente aggiungere i repository fuss in
/etc/apt/source.list.d/fuss.sources:
Types: deb deb-src
URIs: http://archive.fuss.bz.it/
Suites: trixie
Components: main contrib non-free
Signed-By: /usr/share/keyrings/fuss-keyring.gpg
aggiungere la chiave di firma del repository e aggiornare apt:
# wget https://archive.fuss.bz.it/pool/main/f/fuss-archive-keyring/fuss-archive-keyring_0.20250620_all.deb # apt install ./fuss-archive-keyring_0.20250620_all.deb # apt update
ed infine, lanciare il programma fuss-client:
# fuss-client --standalone
Configurazione di chroot per la generazione di iso
Nel caso in cui si stia configurando con --standalone non una
macchina reale ma una chroot, si può aggiungere l’opzione --iso per
evitare che siano configurati grub e i locale, per evitare fallimenti.
Installazione leggera
L’opzione --light permette di fare installazioni più leggere
evitando di installare gli inter metapacchetti fuss-kids,
fuss-children e fuss-education. Ovviamente una selezione di
pacchetti educational più limitata può essere installata manualmente in
un secondo tempo.
Supporto per firmware proprietari
Per il funzionamento di determinato hardware è necessario l’uso di
firmware proprietari, disponibili nella sezione non-free-firmware
dei repository, che fuss-client si aspetta sia abilitata in
/etc/apt/sources.list.d/debian.sources.
Cambiamento dell’hostname
Per cambiare l’hostname di un fuss-client si può lanciare il comando:
fuss-client -H <nuovo_hostname>
questo aggiorna anche la chiave kerberos con il nuovo hostname.
L’opzione è pensata per essere usata su macchine appena ripristinate da un’immagine pulita per assegnare un hostname unico alla stessa subito prima di configurarla con fuss-client.
L’uso di questa opzione su macchine già configurate con fuss-client è adeguato nel caso in cui si sia fatto un errore nell’assegnazione dell’hostname, ma è sconsigliato farne uso sistematico, e in particolare nel caso di cambiamento del server è consigliabile effettuare un restore da immagine pulita.
Nel caso si usi questa opzione su un client che è già stato collegato ad un fuss-server è inoltre opportuno usare, sul server, il comando:
/usr/share/fuss-server/scripts/forget_client <vecchio_hostname>
per rimuovere le tracce della registrazione con l’hostname precedente.
Rimozione completa della configurazione dei client
Premessa
Fino a fuss 11 fuss-client permetteva di togliere parte della configurazione di un FUSS Client in modo da poterlo spostare da un server in dismissione ad un nuovo server senza reinstallarlo.
Si otteneva lanciando il comando:
# fuss-client -r -p
quindi spostando il client sulla rete del nuovo server e lanciando fuss-client regolarmente come indicato sopra.
Configurazione attuale
A partire da fuss 12, una volta che una macchina è stato configurata non è possibile rimuovere in modo affidabile la sua configurazione;
per cambiare totalmente caso d’uso di un PC (ad esempio da client a standalone) è necessario ripristinare la sua installazione da un’immagine pulita
tramite fuss-fucc (o effettuarne una nuova installazione, a seconda di cosa risulti più comodo o veloce).
Mantenendo lo stesso caso d’uso (ridenominazione di un client nella stessa rete o spostamento di un client da una rete ad un’altra), generalmente è sufficiente una riconfigurazione con l’opzione -H documentata sopra:
fuss-client -H client_name
Per rimuovere il client lato server è necessario invece lanciare sul server il comando:
/usr/share/fuss-server/scripts/forget_client client_name
Nel caso vi sia la necessità di rimuovere un certo numero di client dal server,
è vantaggioso creare ad esempio nella cartella /root del server una lista di hostname da rimuovere
chiamandola client-forget.csv e uno script forget-clients come il seguente:
#!/bin/sh
systemctl stop octofussd
for HOSTNAME in $(cat client-forget.csv)
do
echo $HOSTNAME
DOMAINNAME=$(dnsdomainname)
FQDN="$HOSTNAME.$DOMAINNAME"
sed -r -i "s/ +$HOSTNAME( +|$)/\1/g" /etc/clusters
kadmin.local ktremove nfs/$FQDN all
kadmin.local delprinc nfs/$FQDN
done
systemctl start octofussd
Lanciando questo script, tutti i client elencati vengono rimossi dal join e cancellati da /etc/clusters.