Les sauvegardes de bulbe.nos-oignons.net sont pilotées par backupninja.

Voir quelques notes d'installation.

backupninja

La configuration de backupninja se fait à travers /etc/backupninja.conf et surtout à travers les fichiers posés dans /etc/backup.d. Ces derniers seront traités en séquence afin de réaliser l'opération de sauvegarde.

L'idée est d'abord de collecter toutes les informations qui ne sont pas immédiatement accessibles (liste des paquets, description des partitions, dumps PostgreSQL, etc.) dans /var/backups.

Une fois cela fait, la dernière étape sauvegardera les différents dossiers à sauvegarder, dont /var/backups vers un serveur distant. Pour cela, on va utiliser Borg.

Borg

Borg envoie les données via SSH sur un serveur distant hébergé chez Globenet. Le compte SSH s'y appelle nos-oignons. Une copie de la clé SSH qui permet d'accéder au serveur se trouve dans le trousseau keyringer.

Configuration

Toute la configuration de Borg se fait via le fichier 80.borg.sh

/etc/backup.d/80.borg.sh

La première partie configure le repo et le mot de passe nécessaire pour l'utilisation de la clef :

# Setting this, so the repo does not need to be given on the commandline:
export BORG_REPO=ssh://nos-oignons@[domaine_de_backup_de_globenet.org]/~/borg/

# See the section "Passphrase notes" for more infos.
export BORG_PASSPHRASE="Mot_de_passe..."

Pour le bon fonctionnement, il est nécessaire d'avoir configurer .ssh/config du user sous lequel est lancé le backup (root en l'occurence) :

Host [domaine_de_backup_de_globenet.org]
    User nos-oignons
    IdentityFile [chemin_vers_la_clef_privée]

De retour dans 80.borg.sh, le backup se fait via la commande suivante :

# Backup the most important directories into an archive named after
# the machine this script is currently running on:

borg create                         \
        --verbose                       \
        --filter AME                    \
        --list                          \
        --stats                         \
        --show-rc                       \
        --compression lz4               \
        --exclude-caches                \
        --exclude '/home/*/.cache/*'    \
        --exclude '/var/tmp/*'          \
                                        \
        ::'{hostname}-{now}'            \
        /etc                            \
        /home                           \
        /root                           \
        /srv                            \
        /usr/local                      \
        /var/backups                    \
        /var/spool                      \

Nous conservons 7 sauvegardes journalières, les 4 dernières hebdomadaires et les 6 dernières mensuelles.

Voir quelques exemples d'utilisation