tag1consulting.borgbackup
Rôle de sauvegarde Borg
Ceci est un fork de https://github.com/FiaasCo/borgbackup, qui a été écrit à l'origine par Luc Stroobant et Dieter Verhelst. Ce fork est maintenu par Tag1 Consulting, Inc.
Ce rôle installe la sauvegarde Borg sur les serveurs et les clients borgbackup. Le rôle contient un script "wrapper" 'borg-backup' pour faciliter l'utilisation sur le client. Les options prises en charge incluent borg-backup info | init | list | backup | mount. Automysqlbackup s'exécutera en tant que commande de pré-sauvegarde si elle est installée. Le rôle prend en charge à la fois les sauvegardes auto-hébergées et hors site, comme rsync.net et Hetzner Storage Box, en tant que serveur Borg.
Il est possible de configurer des dépôts en mode append-only pour sécuriser les sauvegardes contre la suppression depuis le client.
Ansible 2.4 ou une version supérieure est requise pour exécuter ce rôle.
Ansible Galaxy
Ce rôle est tag1consulting.borgbackup
sur Ansible Galaxy. Pour l'utiliser dans un playbook, ajoutez ce qui suit à votre fichier requirements.txt
:
# https://github.com/tag1consulting/ansible-role-borgbackup
- src: "tag1consulting.borgbackup"
Variables requises
Définissez un groupe borgbackup_servers dans votre inventaire avec un ou plusieurs hôtes. Le groupe borgbackup_management n'est nécessaire que si vous souhaitez activer le mode append-only et supprimer les sauvegardes depuis des hôtes sécurisés.
[borgbackup_servers]
backup1.fiaas.co
[borgbackup_management]
supersecurehost
Définissez des variables de groupe ou hôte pour vos points de sauvegarde et la rétention :
borgbackup_servers:
- fqdn: backup1.fiaas.co
user: borgbackup
type: normal
home: /backup/
pool: repos
options: ""
- fqdn: yourhost.rsync.net
user: userid
type: rsync.net
home: ""
pool: repos
options: "--remote-path=borg1"
- fqdn: username.your-storagebox.de
user: username
type: hetzner
home: ""
pool: repos
options: ""
borgbackup_retention:
hourly: 12
daily: 7
weekly: 4
monthly: 6
yearly: 1
AVERTISSEMENT : le / final dans item.home est requis.
Définissez un borg_passphrase pour chaque hôte. host_vars\client1:
borgbackup_passphrase: Ahl9EiNohr5koosh1Wohs3Shoo3ooZ6p
Par défaut, le rôle crée un cronjob dans /etc/cron.d/borg-backup qui s'exécute en tant que root tous les jours à une heure aléatoire entre 0 et 5 heures du matin, à une minute aléatoire. Remplacez les valeurs par défaut si nécessaire :
borgbackup_client_user: root
borgbackup_cron_day: "*"
borgbackup_cron_minute: "{{ 59|random }}"
borgbackup_cron_hour: "{{ 5|random }}"
Remplacez borgbackup_client_user si nécessaire, par exemple si vous avez un ordinateur portable avec un répertoire personnel chiffré, vous devrez exécuter la sauvegarde en tant qu'utilisateur de ce répertoire personnel.
Définissez borgbackup_appendonly: True dans les variables d'hôte ou de groupe si vous souhaitez des dépôts en mode append-only. Dans ce cas, il est possible de définir un nom d'hôte dans borgbackup_management_station où un script de nettoyage Borg sera configuré. Seule la station de gestion aura la permission de supprimer les anciennes sauvegardes pour (tous) les clients. Cela générera un serveur avec des options de clé SSH --append-only. Si vous définissez borgbackup_appendonly_repoconfig sur True, cela désactivera également la possibilité de supprimer les sauvegardes depuis la station de gestion. (Ou du moins : il n'est pas possible de les supprimer tant que vous ne reconfigurez pas le dépôt et cela n'est actuellement pas pris en charge dans le script de nettoyage).
Attention aux limitations du mode append-only : les sauvegardes supprimées semblent être enlevées, mais ne sont retirées que dans le journal des transactions jusqu'à ce que quelque chose écrive en mode normal dans le dépôt.)
Assurez-vous de vérifier les valeurs par défaut configurées pour ce rôle, qui contient la liste des emplacements par défaut étant sauvegardés dans backup_include. Remplacez cela dans votre inventaire si nécessaire.
Installation de Borg à partir du paquet EPEL
Borg peut être installé à partir d'un paquet EPEL en définissant la variable :
borgbackup_install_from_pkg: true
Le dépôt EPEL doit être présent pour que cela fonctionne. Pour installer le dépôt EPEL en utilisant le rôle geerlingguy.repo-epel
, définissez :
borgbackup_install_epel: true
Utilisation
Configurez Borg sur le serveur et sur un client :
ansible-playbook -i inventory/test backup.yml -l backup1.fiaas.co
ansible-playbook -i inventory/test backup.yml -l client1.fiaas.co
Lectures complémentaires
Install Borg backup server and client (with rsync.net server support)
ansible-galaxy install tag1consulting.borgbackup