Sauvegardes avec Borg#
Le système et les données utilisateur sont sauvegardées une fois par jour à 5h. Les sauvegardes de CLUB1 sont basées sur Borg et Borgmatic. Elles sont ainsi stockées de manière dédupliquée et chiffrée à plusieurs endroits dont un dépôt off-site offert par Etienne Le Louët (serveur Debian auto-hébergé à Paris).
Il s’agit de sauvegardes incrémentales avec la politique de rétention suivante :
7 sauvegardes journalières
4 sauvegardes hebdomadaires
La plus ancienne sauvegarde conservée date donc d’environ 1 mois et chacun des jours de la dernière semaine est accessible. En cas de défaillance matérielle, au maximum 24h de données seront perdues. Le bon déroulement des sauvegardes est vérifié à l’aide du service Healthchecks.io
Les sauvegardes sont réparties en quatre groupes :
System pour la configuration du serveur et les fichiers des applications.
MariaDB pour les bases de données MariaDB.
Postgres pour les bases de données PostgreSQL.
Userdata pour les données de l’espace personnel (dossier
home
).
Voir aussi
L’article du journal : Sauvegardes
Processus de restauration#
Cette section décrit la restauration totale du système, en réinstallant tous les logiciels depuis zéro.
1. Installation du système#
Language : English
Location : Europe/France
Locale : en-US
Hostname : club1.fr
Root password :
First user : Any username/password
Partitionning : Guided (All files in one partition) + 16Go Swap
Mirrors : deb.debian.org
Popcon : yes
Software : SSH server, Standard system utilities
2. Étapes préparatoires#
Cette phase doit être réalisée avec l’utilisateur root
.
2.1. Préparations générales#
dpkg-reconfigure locales
Puis sélection des locales en-GB
, en-US
et fr-FR
en UTF-8.
Principalement pour ne pas avoir de messages d’erreurs lors des étapes suivantes.
apt install vim borgbackup screen
mkdir ~/.ssh
echo "nas.jeanpierre.moe ecdsa-sha2-nistp256 \
AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIdzQyGgLl9YgPVGey\
CxRnOdswraNagx6xSFROaxjTjrM2WwXlFhxLXOxounGKUYBA2l5McCgNh8cneJjKOunmQ=" \
>> ~/.ssh/known_hosts
2.2. Pré-restauration de fichiers spécifiques#
borg list club1@nas.jeanpierre.moe:backups/system
Puis remplacer ARCHIVE
par l’identifiant de l’archive voulue parmi la liste ci-dessus.
La plus récente se trouve en bas à gauche.
cd / && borg extract club1@nas.jeanpierre.moe:backups/system::ARCHIVE \
etc/shadow etc/passwd etc/group etc/gshadow root/apt-packages.txt \
etc/borgmatic.d/system.yaml root/.ssh
Deux mots de passe seront demandés : celui de SSH puis celui de l’archive.
3. Installation des paquets#
Cette phase doit être réalisée avec l’utilisateur root
.
mkdir /etc/systemd/system-preset
echo 'disable *' > /etc/systemd/system-preset/disable-all.preset
apt install extrepo
extrepo enable grafana
extrepo enable jellyfin
extrepo enable matrix
extrepo enable element.io
apt update
# screen (~= 20min)
cat /root/apt-packages.txt | DEBIAN_FRONTEND=noninteractive xargs apt install --no-install-recommends -y
4. Restauration totale#
Cette phase doit être réalisée avec l’utilisateur root
.
4.1. Archive system
et dossier etc
#
cp /etc/fstab /root
# screen (~= 40min)
borgmatic extract --archive latest --repository=club1@nas.jeanpierre.moe:backups/system --destination /
cd /etc
git add . && git reset --hard master
etckeeper init
cp /root/fstab /etc
git add -p && git commit
systemctl daemon-reload
4.2. Base de données LDAP#
systemctl stop slapd
slapadd -l /root/ldap_data.ldif && chown -R openldap:openldap /var/lib/ldap
systemctl restart slapd nslcd
4.3. Base de données des alias email#
newaliases
postmap hash:/etc/aliases_senders
chmod g+w /etc/aliases*.db
4.4. Bases de données MariaDB#
systemctl start mariadb
# screen (~= 20min)
borgmatic restore --archive latest --repository=club1@nas.jeanpierre.moe:backups/mariadb
mariadb < /root/mariadb-users.sql
4.5. Bases de données Postgres#
systemctl start postgresql
sudo -u postgres psql -c 'create role root with superuser login;'
sudo -u postgres psql -c 'create database root with owner root;'
# screen (~= 6h)
borgmatic restore --archive latest --repository=club1@nas.jeanpierre.moe:backups/postgres
4.6. Finalisation#
rm -rf /home/*
reboot