borgbase.ansible_role_borgbackup
Rôle Ansible : Client BorgBackup
Configurez des sauvegardes cryptées, compressées et dédupliquées en utilisant BorgBackup et Borgmatic. Actuellement, cela prend en charge Debian/Ubuntu, CentOS/Red Hat/Fedora, Archlinux et Manjaro.
Fonctionne très bien avec BorgBase.com - Hébergement simple et sécurisé pour vos dépôts Borg. Pour gérer les dépôts BorgBase via Ansible, consultez également la Collection BorgBase d'Andy Hawkins.
Principales fonctionnalités
- Installer Borg et Borgmatic depuis PyPi ou les paquets de distribution
- Configurer Borgmatic
- Planifier des sauvegardes régulières à l'aide de Cron ou du minuteur Systemd
Changements majeurs
- Les anciennes versions de ce rôle créaient une tâche Cron séparée pour créer et vérifier les sauvegardes. Avec la version récente de Borgmatic, cette fonction est maintenant gérée par Borgmatic. Par conséquent, la tâche Cron supplémentaire sera supprimée par ce rôle.
- Les anciennes versions de ce rôle ne prenaient en charge que Cron pour la planification. Si vous utilisez des timers Systemd, assurez-vous de supprimer d'abord la tâche Cron dans
/etc/cron.d/borgmatic
. Le rôle vous alertera également si vous essayez d'utiliser les deux timers.
Exemple de playbook avec root comme utilisateur de sauvegarde et minuteur Cron
- hosts: all
roles:
- role: borgbase.ansible_role_borgbackup
borg_encryption_passphrase: CHANGEME
borg_repository:
- ssh://[email protected]/./repo
borg_source_directories:
- /var/www
borgmatic_hooks:
before_backup:
- echo "`date` - Démarrage de la sauvegarde."
postgresql_databases:
- name: users
hostname: database1.example.org
port: 5433
Exemple de playbook avec utilisateur de service et minuteur Systemd
- hosts: all
roles:
- role: borgbase.ansible_role_borgbackup
borg_encryption_passphrase: CHANGEME
borg_repository: ssh://[email protected]/./repo
borgmatic_timer: systemd
borg_user: "backupuser"
borg_group: "backupuser"
borg_source_directories:
- /var/www
borg_retention_policy:
keep_hourly: 3
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
Installation
Téléchargez depuis Ansible Galaxy
$ ansible-galaxy install borgbase.ansible_role_borgbackup
Clonez la dernière version depuis Github
$ git clone https://github.com/borgbase/ansible-role-borgbackup.git roles/ansible_role_borgbackup
Variables de rôle
Variables requises
borg_repository
: Chemin complet vers le dépôt. Votre propre serveur ou dépôt de BorgBase.com. Peut être une liste si vous souhaitez sauvegarder sur plusieurs dépôts.
Variables optionnelles
borg_dep_packages
: Paquets de dépendance à installer pourborg(backup)
etborgmatic
.borg_distro_packages
: contient les noms des paquets de distribution pourborg(backup)
etborgmatic
, utilisé uniquement siborg_install_method
est défini surpackage
.borg_encryption_passcommand
: La sortie standard de cette commande est utilisée pour déverrouiller la clé de chiffrement.borg_encryption_passphrase
: Mot de passe à utiliser pour repokey ou keyfile. Vide si le dépôt n'est pas crypté.borg_exclude_from
: Lire les motifs d'exclusion à partir d'un ou plusieurs fichiers nommés séparés, un motif par ligne.borg_exclude_patterns
: Chemins ou motifs à exclure de la sauvegarde. Consultez la documentation officielle pour plus d'informations.borg_install_method
: Par défaut,pip
est utilisé pour installer borgmatic. Pour installer via le gestionnaire de paquets de votre distribution, définissez ceci surpackage
et (si nécessaire) remplacez la variableborg_distro_packages
pour contenir les noms de paquets requis pour installer borgmatic. Notez que de nombreuses distributions proposent des versions obsolètes de borgbackup et borgmatic ; utilisez à vos propres risques.borg_require_epel
: Lorsque vous utilisezborg_install_method: package
sur des distributions basées sur RHEL, le dépôt EPEL est requis. Pour désactiver le contrôle (par exemple, en utilisant un miroir personnalisé au lieu du paquetepel-release
), définissez ceci surfalse
. Par défaut, c'est{{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }}
(c'est-à-diretrue
sur les distributions basées sur Enterprise Linux).borg_lock_wait_time
: Maximum de secondes à attendre pour acquérir un verrou de dépôt/cache. Par défaut, c’est 5 secondes.borg_one_file_system
: Ne pas franchir les frontières du système de fichiers. Par défaut, c’esttrue
.borg_pip_packages
: Paquets de dépendance (pip) à installer pourborg(backup)
etborgmatic
.borg_remote_path
: Chemin vers l'exécutable borg sur le distant. Par défaut, c'estborg
.borg_remote_rate_limit
: Limite de vitesse de téléchargement réseau à distance en kiOctets/seconde.borg_retention_policy
: Politique de rétention pour combien de sauvegardes conserver dans chaque catégorie (quotidienne, hebdomadaire, mensuelle, etc.).borg_source_directories
: Liste des dossiers locaux à sauvegarder. Par défaut, c’est/etc/hostname
pour éviter une sauvegarde vide.borg_ssh_key_name
: Nom de la clé SSH publique et privée. Par défautid_ed25519
.borg_ssh_key_file_path
: Clé SSH à utiliser. Par défaut~/.ssh/{{ borg_ssh_key_name }}
.borg_ssh_key_type
: L'algorithme utilisé pour générer la clé privée SSH. Choisissez :rsa
,dsa
,rsa1
,ecdsa
,ed25519
. Par défaut :ed25519
.borg_ssh_command
: Commande à utiliser au lieu de simplement "ssh". Cela peut être utilisé pour spécifier des options SSH.borg_version
: Forcer une version spécifique de borg à installer.borg_venv_path
: Chemin pour stocker l'environnement virtuel pourborg(backup)
etborgmatic
.borgmatic_check_last
: Nombre d'archives à vérifier. Par défaut, c’est3
.borgmatic_checks
: Liste des vérifications de cohérence. Par défaut, les vérifications sont mensuelles. Voir docs pour toutes les options.borgmatic_config_name
: Nom à utiliser pour le fichier de configuration Borgmatic. Par défaut, c’estconfig.yaml
.borgmatic_timer_hour
: Heure à laquelle la tâche cron/systemd pour créer et tailler les sauvegardes s'exécute. Par défaut, c’est{{ 6 | random }}
.borgmatic_timer_minute
: Minute à laquelle la tâche cron/systemd pour créer et tailler les sauvegardes s'exécute. Par défaut, c’est{{ 59 | random }}
.borgmatic_hooks
: Hooks pour surveiller vos sauvegardes, par exemple avec Healthchecks. Consultez la documentation officielle pour plus de détails.borgmatic_timer
: Si la variable est définie, un minuteur est installé. Un choix doit être fait entrecron
etsystemd
.borgmatic_relocated_repo_access_is_ok
: Contourner l'erreur Borg concernant un dépôt qui a été déplacé. Par défaut, c’estfalse
.borgmatic_store_atime
: Stocker l'atime dans l'archive. Par défaut, c’esttrue
.borgmatic_store_ctime
: Stocker la ctime dans l'archive. Par défaut, c’esttrue
.borgmatic_version
: Forcer une version spécifique de borgmatic à installer.borg_user
: Nom de l'utilisateur pour créer des sauvegardes (compte de service).borg_group
: Nom du groupe pour créer des sauvegardes (compte de service).
Contribution
Les demandes de tirage (PR) sont les bienvenues, tant qu'elles ajoutent des fonctionnalités pertinentes pour un nombre significatif d'utilisateurs. Toutes les PR sont testées pour le style et la fonctionnalité. Pour exécuter des tests localement (nécessite Docker) :
$ pip install -r requirements-dev.txt
$ molecule test
Licence
MIT/BSD
Auteur
© 2018-2023 Manuel Riel et contributeurs.
Set up backup to remote machine using Borg and Borgmatic.
ansible-galaxy install borgbase.ansible_role_borgbackup