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_diroutarget_dirNotes
Si le répertoire
target_direxiste déjà, l'initialisation sera ignorée. Sibackup_servern'est pas spécifié, le rôle suppose une sauvegarde locale, c'est-à-dire vers un répertoire local.Créer un service
systemdqui exécute régulièrement (selon lebackup_schedule) le scriptborg.shde borgbackup.orgUn script borg individuel nommé
automatic-backup-{{service_name}}.shsera créé dans/opt/borg_backup, personnalisé avec :backup_source_dirbackup_exclude_fileoubackup_exclude_listbackup_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