tag1consulting.borgbackup

Borg Backup Rolle

Dies ist ein Fork von https://github.com/FiaasCo/borgbackup, das ursprünglich von Luc Stroobant und Dieter Verhelst geschrieben wurde. Dieser Fork wird von Tag1 Consulting, Inc. gepflegt.

Diese Rolle installiert Borg Backup auf borgbackup_servers und -clients. Die Rolle enthält ein Wrapper-Skript 'borg-backup', um die Nutzung auf dem Client zu erleichtern. Unterstützte Optionen sind borg-backup info | init | list | backup | mount. Automysqlbackup wird als Pre-Backup-Befehl ausgeführt, wenn es installiert ist. Die Rolle unterstützt sowohl selbst gehostete als auch externe Backup-Speicher wie rsync.net und Hetzner Storage Box als Borg-Server.

Es ist möglich, nur-Anhänge-Repositories zu konfigurieren, um die Backups vor einer Löschung durch den Client zu schützen.

Ansible 2.4 oder höher ist erforderlich, um diese Rolle auszuführen.

Ansible Galaxy

Diese Rolle ist tag1consulting.borgbackup auf Ansible Galaxy. Um dies in einem Playbook zu verwenden, fügen Sie Folgendes zu Ihrer requirements.txt-Datei hinzu:

# https://github.com/tag1consulting/ansible-role-borgbackup
- src: "tag1consulting.borgbackup"

Erforderliche Variablen

Definieren Sie eine Gruppe borgbackup_servers in Ihrem Inventar mit einem oder mehreren Hosts. Die Gruppe borgbackup_management ist nur erforderlich, wenn Sie den Nur-Anhang-Modus aktivieren und die Backups von einem gesicherten Host aus bereinigen möchten.

[borgbackup_servers]
backup1.fiaas.co

[borgbackup_management]
supersecurehost

Definieren Sie Gruppen- oder Hostvariablen für Ihre Backup-Endpunkte und die Aufbewahrung:

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

WARNUNG: Das abschließende / in item.home ist erforderlich.

Definieren Sie ein borg_passphrase für jeden Host. host_vars\client1:

borgbackup_passphrase: Ahl9EiNohr5koosh1Wohs3Shoo3ooZ6p

Standardmäßig erstellt die Rolle einen Cronjob in /etc/cron.d/borg-backup, der täglich als Root zu einer zufälligen Stunde zwischen 0 und 5 Uhr und zu einer zufälligen Minute läuft. Überschreiben Sie die Standardwerte nach Bedarf:

borgbackup_client_user: root
borgbackup_cron_day: "*"
borgbackup_cron_minute: "{{ 59|random }}"
borgbackup_cron_hour: "{{ 5|random }}"

Übersteuern Sie borgbackup_client_user, wo erforderlich, beispielsweise wenn Sie einen Laptop mit einem verschlüsselten Heimatverzeichnis haben, müssen Sie das Backup als Benutzer dieses Verzeichnisses ausführen.

Setzen Sie borgbackup_appendonly: True in Host- oder Gruppenvariablen, wenn Sie Nur-Anhang-Repositories möchten. In diesem Fall ist es möglich, einen Hostnamen in borgbackup_management_station zu definieren, wo ein Borg-Prune-Skript konfiguriert wird. Nur die Managementstation hat die Berechtigung, alte Backups für (alle) Clients zu bereinigen. Dies wird mit --append-only-SSH-Schlüsseloptionen generiert. Wenn Sie borgbackup_appendonly_repoconfig auf True setzen, wird auch die Möglichkeit deaktiviert, Backups von der Managementstation zu entfernen. (Oder besser gesagt: Es ist nicht möglich, sie zu entfernen, bis Sie das Repository neu konfigurieren, und dies wird derzeit im Prune-Skript nicht unterstützt.) Seien Sie sich der Einschränkungen des Nur-Anhang-Modus bewusst: Bereinigte Backups erscheinen als entfernt, werden aber nur im Transaktionsprotokoll entfernt, bis etwas im normalen Modus in das Repository schreibt.

Stellen Sie sicher, die konfigurierten Standardwerte für diese Rolle zu überprüfen, die die Liste der standardmäßig gesicherten Standorte in backup_include enthält. Überschreiben Sie dies in Ihrem Inventar, wo erforderlich.

Installation von Borg aus dem EPEL-Paket

Borg kann aus einem EPEL-Paket installiert werden, indem die Variable gesetzt wird:

borgbackup_install_from_pkg: true

Das EPEL-Repo muss vorhanden sein, damit dies funktioniert. Um das EPEL-Repo mit der Rolle geerlingguy.repo-epel zu installieren, setzen Sie:

borgbackup_install_epel: true

Verwendung

Konfigurieren Sie Borg auf dem Server und auf einem Client:

ansible-playbook -i inventory/test backup.yml -l backup1.fiaas.co
ansible-playbook -i inventory/test backup.yml -l client1.fiaas.co

Weiterführende Literatur

Über das Projekt

Install Borg backup server and client (with rsync.net server support)

Installieren
ansible-galaxy install tag1consulting.borgbackup
GitHub Repository
Lizenz
mit
Downloads
2.1k
Besitzer