sauvegardes/Plan Borg
Christian P. MOMON 9d6091dcab Add new file 2023-01-12 09:17:33 +00:00
..
.gitkeep Ajouter un nouveau dossier 2023-01-12 08:15:07 +00:00
README.md Add new file 2023-01-12 09:17:33 +00:00

README.md

Plan Borg

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

TOC

Installation d'un serveur de sauvegarde

Prérequis

Installer les paquets nécessaires :

apt install borgmatic

Créer un utilisateur dédié :

adduseradd borgmaster

Créer un dossier pour les scripts maison :

mkdir -p /home/borgmaster/bin

Déclarer ce dossier dans le path de borgmaster :

export PATH=$PATH:~/bin/

Copier les scripts utilitaires dans ~borgmaster/bin/ :

cd ~borgmaster/bin/
git clone truc ou cp

Ajouter le script d'initialisation de dépôt de sauvegarde ~borgmaster/bin/doborginit :

#!/bin/bash

REPO_NAME="$1"
BORG_REPO_ZONE="/var/backups/borgzone"

borg init --encryption=repokey-blake2 ${BORG_REPO_ZONE}/${REPO_NAME}.repo

Ajouter le script d'environnement ~borgmaster/bin/doborgenv :

#!/bin/bash

REPO_NAME="$1"
export BORG_REPO_ZONE="/var/backups/borgzone"
export BORG_REPO="${BORG_REPO_ZONE}/{REPO_NAME}.repo"

Ajouter le script de sauvegarde générale ~borgmaster/bin/dobackups :

#!/bin/bash

# TODO
 sh root@$COMPUTER "borgmatic create $OPTIONS --stats --verbosity 1 --syslog-verbosity 1"

Ajouter le script de sauvegarde générale ~borgmaster/bin/checks :

#!/bin/bash

borgmatic -c $CONFIG check --verbosity 1
borgmatic -c $CONFIG prune --stats --verbosity 1

# TODO

Définir une passphrase générique :

echo "blablablablablabla" > ~borgmaster/.borg-passphrase

Créer un dossier des sauvegardes dédiées au plan Borg :

mkdir -p /var/backup/borgzone
chown borgmaster /var/backup/borgzone

Configurer le cron dans /etc/cron.d/backups :

10 0 * * *      borgmaster     /home/borgmaster/bin/dobackups >> /var/backups/borgzone/dobackups.log 2>&1
10 12 * * *     borgmaster     /home/borgmaster/bin/dochecks >> /var/backups/borgzone/dobackups.log 2>&1

Configurer une nouvelle machine sur le serveur de sauvegarde

Créer le dossier de dépôt (avec l'utilisateur borgmaster) :

doborginit foo.bar.org

Configurer Borgmatic dans /etc/borgmatic/foo.bar.org.conf :

location:
    source_directories: []
    
    repositories:
        - /var/backups/borgzone/foo.bar.org.repo

retention:
    keep_within: 14d
    keep_daily: 7
    keep_weekly: 12
    keep_monthly: 6
    keep_yearly: 1
    prefix: 'foo.bar.org-'

consistency:
    checks:
        - repository
        - archives
    prefix: 'foo.bar.org-'

storage:
     encryption_passphrase: blablabla

output:
    color: false

Autoriser un accès ssh restreint dans /home/borgmaster/.ssh/authorized_keys :

command="export BORG_PASSCOMMAND=/home/borg/.borg-passphrase; borg serve --restrict-to-path /var/backups/borgzone/foo.bar.org.repo/ --restrict-to-repository /var/backups/borgzone/foo.bar.org.repo --append-only",restrict ssh-rsa AAAAZZZZZ root@foo.bar.org

Configurer une nouvelle machine sur le serveur de sauvegarde

Installer des paquets nécessaires :

apt install borgmatic

Configurer Borgmatic dans /etc/borgmatic/config.yaml :

location:
    source_directories:
        - /etc
        - /home
        - /opt
        - /root
        - /srv
        - /usr
        - /var

    repositories:
        - borgmaster@sauvkipeu:/var/backups/borgzone/foo.bar.org.repo
        - borgmaster@gardefou:/var/backups/borgzone/foo.bar.org.repo

    exclude_from:
        - /etc/borgmatic/excludes

storage:
     ssh_command: ssh -p XXXXX
     encryption_passphrase: blablabla
     # archive_name_format: '{fqdn}-{now:%Y-%m-%dT%H:%M}'
     archive_name_format: '{fqdn}-{now:%Y%m%d}'

retention:
     prefix: '{fqdn}-'

output:
    color: false