borgbase.ansible_role_borgbackup

Rôle Ansible : Client BorgBackup

Test Ansible Galaxy

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 pour borg(backup) et borgmatic.

  • borg_distro_packages: contient les noms des paquets de distribution pour borg(backup) et borgmatic, utilisé uniquement si borg_install_method est défini sur package.

  • 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 sur package et (si nécessaire) remplacez la variable borg_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 utilisez borg_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 paquet epel-release), définissez ceci sur false. Par défaut, c'est {{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }} (c'est-à-dire true 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’est true.

  • borg_pip_packages: Paquets de dépendance (pip) à installer pour borg(backup) et borgmatic.

  • borg_remote_path: Chemin vers l'exécutable borg sur le distant. Par défaut, c'est borg.

  • 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éfaut id_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 pour borg(backup) et borgmatic.

  • borgmatic_check_last: Nombre d'archives à vérifier. Par défaut, c’est 3.

  • 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’est config.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 entre cron et systemd.

  • borgmatic_relocated_repo_access_is_ok: Contourner l'erreur Borg concernant un dépôt qui a été déplacé. Par défaut, c’est false.

  • borgmatic_store_atime: Stocker l'atime dans l'archive. Par défaut, c’est true.

  • borgmatic_store_ctime: Stocker la ctime dans l'archive. Par défaut, c’est true.

  • 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.

À propos du projet

Set up backup to remote machine using Borg and Borgmatic.

Installer
ansible-galaxy install borgbase.ansible_role_borgbackup
Licence
mit
Téléchargements
34.4k
Propriétaire
Simple and Secure Offsite Backups