papanito.borg
Rôle Ansible "papanito.borg"
Le rôle Ansible permet d'installer et de configurer des sauvegardes régulières avec borg. Le rôle effectue les actions suivantes :
[Optionnel] Supprimer le référentiel existant
Initier un référentiel à
protocol
://backup_server
:target_dir
outarget_dir
Notes
Si le répertoire
target_dir
existe déjà, l'initialisation sera ignorée. Sibackup_server
n'est pas spécifié, le rôle suppose une sauvegarde locale, c'est-à-dire vers un répertoire local.Créer un service
systemd
qui exécute régulièrement (selon lebackup_schedule
) le scriptborg.sh
de borgbackup.orgUn script borg individuel nommé
automatic-backup-{{service_name}}.sh
sera créé dans/opt/borg_backup
, personnalisé avec :backup_source_dir
backup_exclude_file
oubackup_exclude_list
backup_schedule
Exigences
Aucune
Variables du rôle
Voici toutes les variables :
Paramètre | Description | Valeur par défaut |
---|---|---|
backup_server |
Nom du serveur de sauvegarde - s'il n'est pas défini, il suppose une sauvegarde locale | - |
backup_user |
Nom de l'utilisateur pour se connecter au serveur | - |
backup_port |
Port pour se connecter à backup_server |
- |
protocol |
Protocole utilisé pour se connecter à backup_server |
ssh |
backup_name |
[obligatoire] Nom de la sauvegarde | |
backup_encryption_key |
[obligatoire] Mot de passe pour la clé de cryptage utilisant repokey |
- |
backup_encryption_method |
Méthode de cryptage de Borg, actuellement seul repokey est implémenté |
repokey |
target_dir |
Répertoire cible des sauvegardes sur le backup_server |
"./backups/{{ backup_name }}" |
backup_delete |
AVERTISSEMENT Si défini sur true , le référentiel de sauvegarde existant sera supprimé |
false |
backup_create |
Création de référentiel. Vous pouvez utiliser le rôle pour explicitement supprimer un référentiel existant en exécutant le rôle avec -e backup_delete=true -e backup_create=false |
true |
backup_schedule |
Notation de programme systemd pour la sauvegarde quotidienne | *-*-* 03:00:00 |
backup_include_list |
Liste des répertoires sources à sauvegarder | - |
backup_exclude_file |
EXCLUDEFILE contenant les motifs à exclurePrend la priorité sur backup_exclude_list |
- |
backup_exclude_list |
Liste de motifs qui seront ajoutés comme --exclude 'PATTERN' |
- |
Les paramètres suivants sont liés au fichier de service systemd :
Paramètre | Description | Valeur par défaut |
---|---|---|
systemd_target_dir |
Emplacement où copier les fichiers .service |
/etc/systemd/system/ |
borg_systemd_user |
Utilisateur pour le service systemd | backup |
borg_systemd_group |
Groupe pour le service systemd | backup |
borg_systemd_on_failure |
S'il est défini, cela créera une entrée [OnFailure] dans le fichier de service | - |
systemd_script_mode |
Mode du fichier script | 0774 |
systemd_service_mode |
Mode du fichier de service | 0644 |
Le script déployé définit également les options pour prune
comme décrit dans borg prune. Les valeurs qui attendent un nombre mais dont la variable n'est pas définie, l'option n'est pas fournie.
Paramètre | Description | Valeur par défaut |
---|---|---|
backup_prune_dryrun |
-n, --dry-run ne pas changer le référentiel |
false |
backup_prune_force |
--force forcer la suppression des archives corrompues |
false |
backup_prune_stats |
-s, --stats imprimer des statistiques sur l'archive supprimée |
true |
backup_prune_list |
--list sortie de la liste verbeuse des archives conservées/supprimées |
true |
backup_prune_keep_within |
--keep-within INTERVAL garder toutes les archives dans cet intervalle de temps |
- |
backup_prune_keep_last |
--keep-last, --keep-secondly nombre d'archives secondes à garder |
- |
backup_prune_keep_minutely |
--keep-minutely nombre d'archives à conserver chaque minute |
- |
backup_prune_keep_hourly |
-H, --keep-hourly nombre d'archives à conserver chaque heure |
- |
backup_prune_keep_daily |
-d, --keep-daily nombre d'archives à conserver chaque jour |
- |
backup_prune_keep_weekly |
-w, --keep-weekly nombre d'archives à conserver chaque semaine |
- |
backup_prune_keep_monthly |
-m, --keep-monthly nombre d'archives à conserver chaque mois |
- |
backup_prune_keep_yearly |
-y, --keep-yearly nombre d'archives à conserver chaque année |
- |
backup_prune_save_space |
--save-space fonctionner plus lentement, mais utiliser moins d'espace |
false |
Pour garder les informations sensibles cachées, je recommande d'utiliser ansible-vault
.
Vous pouvez définir le fichier de mot de passe dans ansible.cfg
pour qu'aucun paramètre de coffre-fort ne doive être spécifié. Ainsi, la variable chiffrée backup_encryption_key
peut être créée comme suit :
ansible-vault encrypt_string 'SupersecretPa$$phrase' --name 'backup_encryption_key'
Dépendances
Aucune
Exemples
Exemple de Playbook pour une sauvegarde à distance
Voici un exemple d'utilisation de votre rôle (par exemple, avec des variables passées en tant que paramètres) :
- hosts: localhost
vars:
- backup_server: borg.intra
- backup_user: borguser
- backup_name: mybackupname
- backup_encryption_key: test
- backup_port: 23
- target_dir: "/var/backups/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
roles:
- role: papanito.borg
Cela créera une sauvegarde à ssh://[email protected]:/var/backup/mybackupname
et les fichiers systemd suivants :
/opt/borg_backup/automatic-backup-mybackupname-borg.intra.sh
(script de sauvegarde)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.service
(fichier de service systemd)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.timer
(fichier de minuteurs systemd)
Exemple de Playbook pour une sauvegarde locale
Voici un autre exemple d'utilisation de votre rôle :
- hosts: localhost
vars:
- backup_name: mybackupname
- backup_encryption_key: test
- target_dir: "/var/backup/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
Cela créera une sauvegarde à /var/backup/mybackupname
et les fichiers systemd suivants :
/opt/borg_backups/automatic-backup-mybackupname-local.sh
(script de sauvegarde)/etc/systemd/system/automatic-backup-mybackupname-local.service
(fichier de service systemd)/etc/systemd/system/automatic-backup-mybackupname-local.timer
(fichier de minuteurs systemd)
Licence
C'est un logiciel libre, publié sous les termes de la licence Apache v2.
Informations sur l'auteur
ansible-galaxy install papanito.borg