newtonne.backup
Rôle Ansible : Sauvegarde
Installe et configure borgmatic et borg, pour la sauvegarde automatisée de fichiers, ainsi que des bases de données MySQL et PostgreSQL.
Exigences
Exigences optionnelles :
cron
doit être installé pour automatiser les sauvegardes.MySQL ou une base de données compatible MySQL doit être installé pour sauvegarder les bases de données MySQL. Il en va de même pour les bases de données PostgreSQL.
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml) :
Lié à la configuration de Borgmatic
backup_directories: []
La liste des répertoires (ou fichiers individuels) à sauvegarder.
backup_mysql_databases: []
La liste des bases de données MySQL à sauvegarder. Voir borgmatic - hooks de dump de base de données pour plus d'informations.
backup_postgresql_databases: []
La liste des bases de données PostgreSQL à sauvegarder. Voir borgmatic - hooks de dump de base de données pour plus d'informations.
backup_repositories: []
La liste des référentiels borg
pour la sauvegarde. Ceux-ci doivent être créés à l'avance en utilisant borg init
. Voir aussi documentation Borg sur les URL de référentiel.
backup_location_options: {}
backup_storage_options: {}
backup_retention_options: {}
backup_consistency_options: {}
backup_hooks_options: {}
Ces variables peuvent être utilisées pour fournir une configuration supplémentaire à borgmatic
, comme la phrase de passe de chiffrement pour le référentiel borg
ou des scripts/commandes de hook supplémentaires/alternatifs. Voir le schéma de borgmatic pour la liste complète des options de configuration.
backup_hooks_globlist: hooks/*
Les motifs globaux que la recherche de fichiers globaux utilisera pour trouver des scripts de hook sur la machine de contrôle.
backup_hooks_directory: /etc/borgmatic/hooks
Le répertoire dans lequel tous les scripts de hook borgmatic
trouvés par les motifs ci-dessus seront copiés.
Général
backup_cron_jobs
- schedule: "0 3 * * *"
# action: create
La liste des spécifications de temps cron et des actions à réaliser. Si aucune action n'est spécifiée, borgmatic
exécutera toutes les actions, c'est-à-dire élaguer, créer et vérifier (voir docs de borgmatic - configurer des sauvegardes). Si laissé vide, aucune crontab ne sera configurée.
backup_cron_path: "{{ backup_borg_path | dirname }}:/usr/bin:/bin"
La valeur de $PATH
à définir au début de la crontab.
backup_verbosity: 0
Le niveau de verbosité avec lequel exécuter borgmatic
. Voir référence de ligne de commande borgmatic.
backup_user: root
L'utilisateur qui exécutera les sauvegardes et possèdera les divers fichiers et répertoires liés aux sauvegardes.
backup_group: root
Le groupe qui possédera les divers fichiers et répertoires liés aux sauvegardes.
backup_config_directory: /etc/borgmatic
Le répertoire dans lequel le fichier de configuration borgmatic
sera placé.
backup_log_file: /var/log/borgmatic.log
Le fichier dans lequel la sortie de borgmatic
sera enregistrée.
Lié à l'installation
backup_borg_keyserver: hkps://keys.openpgp.org
Le serveur de clés GPG à partir duquel télécharger la clé publique borg
.
backup_borg_gpg_fpr: 6D5BEF9ADD2075805747B70F9F88FB52FAF7B393
L'empreinte de la clé publique borg
. Voir documentation Borg - sécurité.
backup_borg_url: https://github.com/borgbackup/borg/releases/download
L'URL à partir de laquelle télécharger le binaire borg
.
backup_borg_asset: borg-linux{{ ansible_architecture [-2:] }}
Le nom de l'asset binaire borg
à télécharger.
backup_borg_version: 1.1.17
La version du binaire borg
à télécharger.
backup_borg_path: /usr/local/bin/borg
Le chemin où le binaire borg
sera installé. Notez qu'aucune tentative ne sera faite pour installer borg
si ce fichier existe déjà.
backup_borgmatic_version: 1.5.20
La version de borgmatic
à installer avec pip.
backup_borgmatic_venv: /etc/borgmatic/venv
L'environnement virtuel dans lequel pip installera borgmatic
. Il sera créé s'il n'existe pas déjà.
Dépendances
Aucune
Exemple de Playbook
- hosts: serveurs
vars:
backup_directories:
- /etc/myapp
- /var/myapp
backup_repositories:
- user@host1:server_backup1
- user@host2:server_backup2
backup_storage_options:
encryption_passphrase: motdepassesecret
backup_retention_options:
keep_daily: 7
keep_weekly: 4
backup_cron_jobs:
- schedule: "0 2 * * *"
roles:
- { role: newtonne.backup }
Licence
MIT