sauvegardes/Plan Borg/README.md

170 lines
3.6 KiB
Markdown
Raw Normal View History

2023-01-12 10:17:33 +01:00
# 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
```