borgbase.ansible_role_borgbackup

Ansible Rolle: BorgBackup Client

Test Ansible Galaxy

Richten Sie verschlüsselte, komprimierte und deduplizierte Backups mit BorgBackup und Borgmatic ein. Unterstützt derzeit Debian/Ubuntu, CentOS/Red Hat/Fedora, Archlinux und Manjaro.

Funktioniert hervorragend mit BorgBase.com - Einfaches und sicheres Hosting für Ihre Borg-Repositories. Um BorgBase-Repos über Ansible zu verwalten, siehe auch Andy Hawkins' BorgBase Collection.

Hauptmerkmale

  • Installieren Sie Borg und Borgmatic von PyPi oder distributionsspezifischen Paketen
  • Richten Sie die Borgmatic-Konfiguration ein
  • Planen Sie regelmäßige Backups mit Cron oder Systemd-Timern

Wesentliche Änderungen

  • Ältere Versionen dieser Rolle richteten einen separaten Cron-Job zum Erstellen und Überprüfen von Backups ein. Mit der aktuellen Borgmatic-Version wird diese Funktion jetzt in Borgmatic verwaltet. Dadurch wird der zusätzliche Cron-Job von dieser Rolle entfernt.
  • Ältere Versionen dieser Rolle unterstützten nur Cron zur Planung. Wenn Sie Systemd-Timer verwenden, entfernen Sie zuerst den Cron-Job in /etc/cron.d/borgmatic. Die Rolle warnt Sie auch, wenn Sie versuchen, beide Timer zu verwenden.

Beispiel-Playbook mit root als Backup-Benutzer und Cron-Timer

- 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` - Starting backup."
      postgresql_databases:
      - name: users
        hostname: database1.example.org
        port: 5433

Beispiel-Playbook mit Dienstbenutzer und Systemd-Timer

- 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

Herunterladen von Ansible Galaxy

$ ansible-galaxy install borgbase.ansible_role_borgbackup

Klone die neueste Version von Github

$ git clone https://github.com/borgbase/ansible-role-borgbackup.git roles/ansible_role_borgbackup

Rollenvariablen

Erforderliche Variablen

  • borg_repository: Voller Pfad zum Repository. Ihr eigener Server oder BorgBase.com Repo. Kann eine Liste sein, wenn Sie zu mehreren Repositories sichern möchten.

Optionale Variablen

  • borg_dep_packages: Abhängigkeitspakete zur Installation von borg(backup) und borgmatic.

  • borg_distro_packages: Enthält die Namen der Verteilungspakete für borg(backup) und borgmatic, nur verwendet, wenn borg_install_method auf package gesetzt ist.

  • borg_encryption_passcommand: Die Standardausgabe dieses Befehls wird verwendet, um den Verschlüsselungsschlüssel zu entschlüsseln.

  • borg_encryption_passphrase: Passwort für den Repokey oder die Schlüsseldatei. Leer, wenn das Repository unverschlüsselt ist.

  • borg_exclude_from: Lese Ausschlussmuster aus einer oder mehreren separaten benannten Dateien, ein Muster pro Zeile.

  • borg_exclude_patterns: Pfade oder Muster, die von Backups ausgeschlossen werden sollen. Siehe offizielle Dokumentation für mehr.

  • borg_install_method: Standardmäßig wird pip verwendet, um borgmatic zu installieren. Um über den Paketmanager Ihrer Distribution zu installieren, setzen Sie dies auf package und (falls erforderlich) überschreiben Sie die Variable borg_distro_packages, sodass sie die Paketnamen Ihrer Distribution enthält, die erforderlich sind, um borgmatic zu installieren. Beachten Sie, dass viele Distributionen veraltete Versionen von borgbackup und borgmatic bereitstellen; verwenden Sie sie auf eigenes Risiko.

  • borg_require_epel: Bei Verwendung von borg_install_method: package auf RHEL-basierten Distributionen ist das EPEL-Repo erforderlich. Um die Überprüfung zu deaktivieren (z. B. bei Verwendung eines benutzerdefinierten Mirrors statt des epel-release-Pakets), setzen Sie dies auf false. Standardmäßig ist es {{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }} (d.h. true bei Enterprise-Linux-basierten Distributionen).

  • borg_lock_wait_time: Maximale Konfiguration in Sekunden, um auf den Erwerb einer Repository-/Cache-Sperre zu warten. Standardmäßig 5 Sekunden.

  • borg_one_file_system: Nicht über Dateisystemgrenzen hinweg zu arbeiten. Standardmäßig true.

  • borg_pip_packages: Abhängigkeitspakete (pip) zur Installation von borg(backup) und borgmatic.

  • borg_remote_path: Pfad zur borg ausführbaren Datei auf dem Remote. Es wird standardmäßig auf borg gesetzt.

  • borg_remote_rate_limit: Netzwerk-Upload-Rate limit auf dem Remote in kiBytes/Sekunde.

  • borg_retention_policy: Aufbewahrungsrichtlinie für die Anzahl der Backups, die in jeder Kategorie (täglich, wöchentlich, monatlich usw.) behalten werden sollen.

  • borg_source_directories: Liste lokaler Ordner, die gesichert werden sollen. Standardwert ist /etc/hostname, um ein leeres Backup zu verhindern.

  • borg_ssh_key_name: Name des SSH-öffentlichen und privaten Schlüssels. Standard id_ed25519.

  • borg_ssh_key_file_path: Zu verwendenden SSH-Schlüssel. Standard ~/.ssh/{{ borg_ssh_key_name }}.

  • borg_ssh_key_type: Der Algorithmus, der zur Erstellung des SSH-Privatschlüssels verwendet wird. Wahlweise: rsa, dsa, rsa1, ecdsa, ed25519. Standard: ed25519.

  • borg_ssh_command: Befehl, der anstelle von "ssh" verwendet werden soll. Dies kann verwendet werden, um SSH-Optionen anzugeben.

  • borg_version: Erzwingt eine bestimmte borg-Version zur Installation.

  • borg_venv_path: Pfad zum Speichern des venv für borg(backup) und borgmatic.

  • borgmatic_check_last: Anzahl der Archive, die überprüft werden sollen. Standardmäßig 3.

  • borgmatic_checks: Liste von Konsistenzprüfungen. Standardmäßig monatliche Prüfungen. Siehe Dokumentation für alle Optionen.

  • borgmatic_config_name: Name für die Borgmatic-Konfigurationsdatei. Standardmäßig config.yaml.

  • borgmatic_timer_hour: Stunde, zu der der reguläre Erstellungs- und Bereinigungs-Cron/Systemd-Timer-Job ausgeführt wird. Standardmäßig {{ 6 | random }}.

  • borgmatic_timer_minute: Minute, zu der der reguläre Erstellungs- und Bereinigungs-Cron/Systemd-Timer-Job ausgeführt wird. Standardmäßig {{ 59 | random }}.

  • borgmatic_hooks: Hooks zur Überwachung Ihrer Backups, z.B. mit Healthchecks. Siehe offizielle Dokumentation für weitere Informationen.

  • borgmatic_timer: Wenn die Variable gesetzt ist, wird ein Timer installiert. Eine Wahl muss zwischen cron und systemd getroffen werden.

  • borgmatic_relocated_repo_access_is_ok: Umgehen Sie Borg-Fehlermeldungen zu einem Repository, das verschoben wurde. Standardmäßig false.

  • borgmatic_store_atime: Zeitstempel für den Zugriff in das Archiv speichern. Standardmäßig true.

  • borgmatic_store_ctime: Zeitstempel für die Erstellung in das Archiv speichern. Standardmäßig true.

  • borgmatic_version: Erzwingt eine bestimmte borgmatic-Version zur Installation.

  • borg_user: Name des Benutzers, der Backups erstellt (Dienstkonto).

  • borg_group: Name der Gruppe, die Backups erstellt (Dienstkonto).

Mitwirkung

Pull-Anfragen (PR) sind willkommen, solange sie Funktionen hinzufügen, die für eine bedeutende Anzahl von Benutzern relevant sind. Alle PRs werden auf Stil und Funktionalität getestet. Um Tests lokal auszuführen (benötigt Docker):

$ pip install -r requirements-dev.txt
$ molecule test

Lizenz

MIT/BSD

Autor

© 2018-2023 Manuel Riel und Mitwirkende.

Über das Projekt

Set up backup to remote machine using Borg and Borgmatic.

Installieren
ansible-galaxy install borgbase.ansible_role_borgbackup
Lizenz
mit
Downloads
34.4k
Besitzer
Simple and Secure Offsite Backups