Proposta 2: Migrazione soft da server FUSS 8 a server FUSS 10

Autore: Marco Marinello

Al fine di semplificare la migrazione delle scuole dall’ottava versione di FUSS Server e Client alla decima è possibile spezzare la migrazione in due. Si può migrare distintamente server e client, non ha importanza l’ordine. La presente guida si applica a tutti i seguenti contesti:

  • Server FUSS 8 e client FUSS 8
  • Server FUSS 8 e client FUSS 9
  • Server FUSS 8 e client FUSS 10

Backup del vecchio server

Come prima cosa assicurarsi di «portare via» tutti i dati essenziali alla migrazione. Si suppone fuss-backup sia già configurato ed operativo. Se così non dovesse essere, si segua la relativa guida. Si verifichi nel file /etc/fuss-backup/fuss-backup.conf che la variabile PATHS sia valorizzata correttamente e si aggiunga /root e le altre directory che si vuole backuppare.

PATHS="/etc /home /var/backups /var/lib /var/log /var/mail /var/local /root /srv"

D’ora in poi si suppone che la rete sia scarica (non vi devono essere operazioni in corso o utenti collegati).

Si torni quindi nella home di root e si esegua

slapcat > dump_pre_mig.ldif

che genererà un backup di LDAP nel file /root/dump_pre_mig.ldif .

Si esegua poi, per creare un backup dei gruppi

octofussctl -u root http://localhost:13400/conf > groups_backup.txt <<EOF
ls users/groups
EOF

Si ripulisca il file rimuovendo la prima riga «Welcome to the octofussd client […]», il primo e l’ultimo />. Si esegua dunque

sed -i 's+^+create users/groups/+' groups_backup.txt

cosicché il file sia pronto per l’importazione nel nuovo server.

Spostare questo file oltre a /root/dump_pre_mig.ldif e /etc/fuss-backup/fuss-backup.conf sulla propria macchina quindi lanciare fuss-backup . Se root è fra i destinatari si potrà verificare l’esito del backup col comando mail. Ci si annoti anche le chiavi SSH autorizzate all’accesso e gli IP della macchina. Il nuovo server dovrà essere identico al vecchio, nulla potrà essere modificato fra IP, nome di dominio, hostname del server e password di root.

Installazione del nuovo server

In questo test si è utilizzata serverdaupstream ma qualsiasi metodo di installazione di FUSS Server dovrebbe essere equipollente. Qui si prosegue intendendo che fuss-server sia installato assieme a fuss-backup ma non sia mai stato eseguito.

Si inizi montando la risorsa su cui era stato fatto il backup dal vecchio server. Lo si può verificare dal file fuss-backup.conf copiato poc’anzi.

mount 172.16.11.22:/myback /mnt

Si può ora procedere all’estrazione di alcuni file necessari alla prosecuzione (si suppone si lavori come root):

cd
mkdir from_backup
cd from_backup
borg extract --progress /mnt/borgdata::$(borg list /mnt/borgdata|tail -1|cut -d ' ' -f 1) etc/fuss-server etc/fuss-backup etc/fuss-server etc/fuss-backup var/lib/krb5kdc/principal etc/krb5kdc etc/krb5.keytab root

Si copi quindi il vecchio file fuss-server.yaml in-place e si esegua fuss-server. Se la configurazione dell’host è identica a quella precedente non dovrebbero esserci errori e nessuna domanda dovrebbe essere posta. Se succedesse, si verifichi la correttezza della configurazione fatta sinora. Se era configurato il captive portal, è possibile riconfigurarlo subito, previo accertamento dei requisiti del file network come descritti nella relativa guida.

cp etc/fuss-sevrer/fuss-server.yaml /etc/fuss-server
fuss-server create
# Per captive portal (se richiesto) - verificare corrispondenza interfacce
cp etc/fuss-server/fuss-captive-portal.conf /etc/fuss-server
fuss-server cp

A questo punto è consigliabile un riavvio per accertarsi che tutto funzioni.

Importazione degli utenti

Avvertimento

Ci si accerti che la versione di octonet sia >= 10.0.4-2 e octofussd >= 10.0.15-1

Creazione dei gruppi

Per non incorrere in errori, come prima cosa si ricrei i gruppi che si aveva sul vecchio server. Il file groups_backup.txt dovrebbe essere stato estratto dal backup in /root/from_backup/root/groups_backup.txt

octofussctl -u root http://localhost:13400/conf < /root/from_backup/root/groups_backup.txt

Conversione del file LDIF da OctoNet

Ci si colleghi dalla propria macchina ad OctoNet via browser e si esegua l’accesso. Si vada quindi ad Utenti e Gruppi > Converti file LDIF. Si carichi il file precedentemente esportato e si scarichi l’output in CSV. Si modifichi quindi il file CSV con LibreOffice e si rimuova la colonna password che contiene quelle generate automaticamente e si salvi.

Importazione del nuovo CSV

Ora che si è in possesso della lista degli utenti è possibile importare questi nel nuovo server. Nuovamente da Utenti e Gruppi si scelga Importa da CSV. Si carichi il file CSV appena preparato, si selezioni la prima riga (intestazione) per renderla ignorata e si associ le colonne. Ci si accerti di aver associato la Hashed password altrimenti gli utenti verranno creati senza password. Si autorizzi l’importazione e si attenda pazientemente il termine. La barra di progresso dovrebbe segnalare l’avanzamento dell’operazione.

Ora tutti gli utenti dovrebbero essere stati ricreati con le relative home (vuote).

Ripristino dei file di Kerberos

Una volta creati tutti gli utenti si possono spostare in-place i vecchi file di Kerberos con le credenziali.

systemctl stop octofussd octonet fuss-manager krb5-admin-server krb5-kdc nfs-common nfs-kernel-server
cp /etc/krb5.keytab{,-fs_old}
cp /var/lib/krb5kdc/principal{,-fs_old}
cp /root/from_backup/etc/krb5.keytab /etc/
cp /root/from_backup/var/lib/krb5kdc/principal /var/lib/krb5kdc/

Si riavvii ora il server per tornare ad una situazione pulita dal punto di vista dei servizi. Ora è possibile accendere un client e provare l’accesso con un utente importato. Se tutto è stato eseguito correttamente, si dovrebbe accedere e visualizzare la propria home (vuota).

Estrazione delle home

Ultimo step è il ripristino delle home dal backup. Dato che è un processo lungo, è consigliabile eseguirlo in screen.

cd /
borg extract --progress /mnt/borgdata::$(borg list /mnt/borgdata|tail -1|cut -d ' ' -f 1) home

Configurazione del nuovo backup

Nel riconfigurare fuss-backup è consigliabile non usare di nuovo la directory borgdata per non intaccare il vecchio backup. Si preferisca piuttosto qualcosa come borgdata10.

Ripristino di altri dati o configurazioni precedenti

Il server dovrebbe essere ora pienamente operativo. È possibile tuttavia ripristinare ulteriori dati (come le immagini di clonezilla) o configurazioni (come quelle del firewall) dal backup.

Questi sono lasciati come esercizio al lettore.