Christian P. MOMON e3cd182227 | ||
---|---|---|
.. | ||
bin | ||
models | ||
.gitkeep | ||
README.md |
README.md
Plan Borg |
---|
Introduction
Le plan Borg est une solution de sauvegarde basée sur Borgmatic.
[[TOC]]
Installation d'un serveur de sauvegarde
Ajouter les backports bullseye dans /etc/apt/source.list
:
deb http://ftp.fr.debian.org/debian/ bullseye-backports main
Installer les paquets nécessaires :
apt install -t bullseye-backports borgmatic borgbackup
Créer un utilisateur dédié borg
:
adduser --disabled-password --system --group --home /srv/borg/ --shell /bin/bash borg
Créer des clés ssh
pour l'utilisateur borg
:
su - borg
mkdir ~/.ssh
chmod go-rwx ~/.ssh
ssh-keygen -t ed25519
Créer un dossier pour les scripts maison :
mkdir -p ~borg/bin
Copier les scripts utilitaires dans ~borg/bin/
:
cd ~borg/bin/
git clone truc ou cp
Créer les dossiers de configuration de Borgmatic :
mkdir -p /etc/borgmatic/ /etc/borgmatic.d/
Définir dans /etc/borgmatic/retention.yaml
les valeurs de rétentions communes :
keep_within: 14d
keep_daily: 7
keep_weekly: 12
keep_monthly: 11
Définir dans /etc/borgmatic/excludes
les patterns d'exclusion :
pp:var/cache/
pp:var/backups/vm/
pp:var/backups/borg/
fm:*/.gvfs
fm:*/.thumbnails
fm:*/.bkl-thumbnails
fm:*/Cache
fm:*/.cache
fm:*/cache
fm:*/cache2
fm:*/.davfs2
fm:*/.local/share/Trash
fm:*/lost+found
fm:*/sharedfs
Définir une passphrase générique :
echo "XXXXXXXXXXXXXXXXXXXXXXXXXXX" > ~borg/.borg-passphrase
Ajouter la ligne suivante dans /root/.bashrc
(facilite la commande borg
directe même si normalement on fait tout avec la commande borgmatic
) :
export BORG_PASSCOMMAND="cat /srv/borg/.borg-passphrase"
Créer un dossier dédié aux sauvegardes du plan Borg :
mkdir -p /var/backup/borg
chown borg /var/backup/borg
Configurer le cron
dans /etc/cron.d/backups
:
10 0 * * * borg /srv/borg/bin/dobackups >> /var/backups/borg/dobackups.log 2>&1
10 12 * * * borg /srv/borg/bin/doprune >> /var/backups/borg/doprune.log 2>&1
10 5 * * 0 borg /srv/borg/bin/dochecks >> /var/backups/borg/dochecks.log 2>&1
Configurer la sauvegarde de la machine locale.
Créer une configuration pour la sauvegarde de la machine locale /etc/borgmatic.d/sauvkipeu.yaml
:
cp /srv/borg/models/model-conf-local.yaml /etc/borgmatic.d/
Vérifier que la configuration Borgmatic est valide :
validate-borgmatic-config
Initialiser le dépôt de la machine locale :
/srv/borg/bin/doinit sauvkipeu
Lancer la première sauvegarde locale (dure moins d'une minutes) :
time /srv/borg/bin/dobackup-local
Afficher les informations du dépôt :
borgmatic -c /etc/borgmatic.d/sauvkipeu.yaml info
Afficher la liste des sauvegardes du dépôt :
borgmatic -c /etc/borgmatic.d/sauvkipeu.yaml list
Afficher le contenu de la sauvegarde :
borgmatic -c /etc/borgmatic.d/sauvkipeu.yaml list --archive 2023-01-14T09:20
Ajouter le lancement de la sauvegarde dans /srv/borg/bin/dobackups
:
/srv/borg/bin/dobackup-local
Configurer la sauvegarde d'une machine en rsync
Le principe consiste en deux étapes :
- création d'un miroir de la machine à sauvegarder ;
- sauvegarde borgmatic du miroir.
C'est notamment adapté aux cas des routeurs où le logiciel Borgmatic n'est pas déployable.
Configurer la sauvegarde d'une machine en remote
C'est le cas nominal. Le principe consiste à configurer le serveur de sauvegarde pour déclencher l'action de sauvegarde sur la machine à sauvegarder.
Côté serveur de sauvegarde
Configurer Borgmatic dans /etc/borgmatic.d/foo.bar.org.yaml
:
cp /srv/borg/models/model-conf-remote.yaml /etc/borgmatic.d/foo.bar.org.yaml
Modifier le chemin le chemin du dépôt :
repositories:
- /var/backups/borg/foo.bar.org.repo
Créer le dossier du nouveau dépôt de sauvegarde :
/srv/borg/bin/doinit foo.bar.org
Ajouter un accès ssh restreint dans /srv/borg/.ssh/authorized_keys
:
command="export BORG_PASSCOMMAND=/srv/borg/.borg-passphrase; borg serve --restrict-to-path /var/backups/borg/foo.bar.org.repo/ --restrict-to-repository /var/backups/borg/foo.bar.org.repo --append-only",restrict ssh-rsa AAAAZZZZZ admin666@foo.bar.org
Côté machine à sauvegarder
Ajouter les backports bullseye dans /etc/apt/source.list
:
deb http://ftp.fr.debian.org/debian/ bullseye-backports main
Installer les paquets nécessaires :
apt install -t bullseye-backports borgmatic borgbackup
Créer et peupler le dossier de configruation de Borgmatic :
mkdir -p /etc/borgmatic
cd /etc/borgmatic
wget htpps://.../retention.yaml
wget htpps://.../Plan B/models/excludes
wget htpps://.../Plan B/models/model-conf-remote2.yaml /etc/borgmatic/config.yaml
Vérifier que la configuration Borgmatic est valide :
validate-borgmatic-config
Configurer la passphrase dans /etc/borgmatic/config.yaml
:
encryption_passphrase: XXXXXXXXXXXXXX
Ajouter la clé borg du serveur de sauvegarde dans /home/admin666/.ssh/authorized_keys
:
ssh-ed25519 AAAAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX borg@sauvkipeu.libre-en-communs.org
Tester côté serveur
Lancer une première sauvegarde :
time sudo /srv/borg/bin/dobackup-remote foo.bar.org
Afficher les informations du dépôt :
borgmatic -c /etc/borgmatic.d/foo.bar.org.yaml info
Afficher la liste des sauvegardes du dépôt :
borgmatic -c /etc/borgmatic.d/foo.bar.orgyaml list
Afficher le contenu de la sauvegarde :
borgmatic -c /etc/borgmatic.d/foo.bar.org.yaml list --archive 2023-XX-XXTXX:XX
Ajouter le lancement de la sauvegarde dans /srv/borg/bin/dobackups
:
/srv/borg/bin/dobackup-remote foo.bar.org