sauvegardes/Plan Borg
Christian P. MOMON c944e32812 Added plan b (step). 2023-01-15 01:17:11 +01:00
..
bin Added plan b (step). 2023-01-15 01:10:38 +01:00
models Added plan b (step). 2023-01-15 01:10:38 +01:00
.gitkeep Ajouter un nouveau dossier 2023-01-12 08:15:07 +00:00
README.md Added plan b (step). 2023-01-15 01:17:11 +01:00

README.md

Plan Borg

Introduction

Le plan Borg est une solution de sauvegarde basée sur Borgmatic.

[[TOC]]

Installation d'un serveur de sauvegarde

Prérequis

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