borgbase.ansible_role_borgbackup

Rola Ansible: Klient BorgBackup

Test Ansible Galaxy

Ustaw zaszyfrowane, skompresowane i deduplikowane kopie zapasowe za pomocą BorgBackup i Borgmatic. Obecnie wspiera Debian/Ubuntu, CentOS/Red Hat/Fedora, Archlinux i Manjaro.

Działa świetnie z BorgBase.com - prostym i bezpiecznym hostingiem dla Twoich repozytoriów Borg. Aby zarządzać repozytoriami BorgBase za pomocą Ansible, zobacz również kolekcję BorgBase Collection Andy'ego Hawkinsa.

Główne funkcje

  • Instalacja Borg i Borgmatic z PyPi lub pakietów dystrybucji
  • Ustawienie konfiguracji Borgmatic
  • Planowanie regularnych kopii zapasowych za pomocą Cron lub timera Systemd

Zmiany

  • Starsze wersje tej roli ustawiały oddzielne zadanie Cron do tworzenia i sprawdzania kopii zapasowych. W najnowszej wersji Borgmatic ta funkcjonalność jest zarządzana przez Borgmatic. W rezultacie dodatkowe zadanie Cron zostanie usunięte przez tę rolę.
  • Starsze wersje tej roli wspierały tylko Cron do planowania. Jeśli używasz timerów Systemd, upewnij się, że najpierw usuniesz zadanie Cron w /etc/cron.d/borgmatic. Rola również powiadomi cię o próbie użycia obu timerów.

Przykładowy playbook z użytkownikiem root i timerem Cron

- hosts: all
  roles:
  - role: borgbase.ansible_role_borgbackup
    borg_encryption_passphrase: ZMIEN TO
    borg_repository:
      - ssh://[email protected]/./repo
    borg_source_directories:
      - /var/www
    borgmatic_hooks:
      before_backup:
      - echo "`date` - Rozpoczęcie kopii zapasowej."
      postgresql_databases:
      - name: users
        hostname: database1.example.org
        port: 5433

Przykładowy playbook z użytkownikiem service i timerem Systemd

- hosts: all
  roles:
  - role: borgbase.ansible_role_borgbackup
    borg_encryption_passphrase: ZMIEN TO
    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

Instalacja

Pobierz z Ansible Galaxy

$ ansible-galaxy install borgbase.ansible_role_borgbackup

Sklonuj najnowszą wersję z Github

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

Zmienne Roli

Wymagane zmienne

  • borg_repository: Pełna ścieżka do repozytorium. Twoj własny serwer lub repozytorium BorgBase.com. Może być listą, jeśli chcesz tworzyć kopie zapasowe do wielu repozytoriów.

Opcjonalne zmienne

  • borg_dep_packages: Pakiety zależności do zainstalowania borg(backup) i borgmatic.

  • borg_distro_packages: zawiera nazwy pakietów dystrybucji dla borg(backup) i borgmatic, używane tylko jeśli borg_install_method jest ustawione na package.

  • borg_encryption_passcommand: Standardowe wyjście tej komendy jest używane do odblokowania klucza szyfrowania.

  • borg_encryption_passphrase: Hasło do użycia dla repokey lub keyfile. Puste, jeśli repozytorium jest nieszyfrowane.

  • borg_exclude_from: Odczytuje wzory wykluczeń z jednego lub więcej oddzielnych nazwanych plików, po jednym wzorze na linię.

  • borg_exclude_patterns: Ścieżki lub wzory do wykluczenia z kopii zapasowej. Zobacz oficjalną dokumentację po więcej informacji.

  • borg_install_method: Domyślnie używany jest pip do instalacji borgmatic. Aby zainstalować za pomocą menedżera pakietów dystrybucji, ustaw to na package i (jeśli to konieczne) nadpisz zmienną borg_distro_packages, aby zawierała nazwy pakietów dystrybucji wymaganych do instalacji borgmatic. Zauważ, że wiele dystrybucji dostarcza przestarzałe wersje borgbackup i borgmatic; używaj na własne ryzyko.

  • borg_require_epel: Przy używaniu borg_install_method: package na dystrybucjach opartych na RHEL, repozytorium EPEL jest wymagane. Aby wyłączyć sprawdzanie (np. używając niestandardowego lustra zamiast pakietu epel-release), ustaw to na false. Domyślnie jest to {{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }} (czyli true w dystrybucjach opartych na Enterprise Linux).

  • borg_lock_wait_time: Limity maksymalnej liczby sekund oczekiwania na uzyskanie blokady repozytorium/cache. Domyślnie 5 sekund.

  • borg_one_file_system: Nie przekraczaj granic systemu plików. Domyślnie true.

  • borg_pip_packages: Pakiety zależności (pip) do zainstalowania borg(backup) i borgmatic.

  • borg_remote_path: Ścieżka do wykonalnego pliku borg na zdalnym serwerze. Domyślnie będzie to borg.

  • borg_remote_rate_limit: Ograniczenie prędkości przesyłania do zdalnego serwera w kiB/s.

  • borg_retention_policy: Polityka przechowywania określająca, ile kopii zapasowych zachować w każdej kategorii (dziennych, tygodniowych, miesięcznych itd.).

  • borg_source_directories: Lista lokalnych folderów do utworzenia kopii zapasowej. Domyślnie to /etc/hostname, aby zapobiec pustej kopii zapasowej.

  • borg_ssh_key_name: Nazwa klucza publicznego i prywatnego SSH. Domyślnie id_ed25519.

  • borg_ssh_key_file_path: Klucz SSH, który będzie używany. Domyślnie ~/.ssh/{{ borg_ssh_key_name }}.

  • borg_ssh_key_type: Algorytm użyty do wygenerowania prywatnego klucza SSH. Wybierz: rsa, dsa, rsa1, ecdsa, ed25519. Domyślnie: ed25519.

  • borg_ssh_command: Komenda używana zamiast "ssh". Można użyć do określenia opcji SSH.

  • borg_version: Wymuszenie określonej wersji borg do zainstalowania.

  • borg_venv_path: Ścieżka do przechowywania wirtualnego środowiska dla borg(backup) i borgmatic.

  • borgmatic_check_last: Liczba archiwów do sprawdzenia. Domyślnie 3.

  • borgmatic_checks: Lista kontroli spójności. Domyślnie kontrole miesięczne. Zobacz dokumentację dla wszystkich opcji.

  • borgmatic_config_name: Nazwa do użycia dla pliku konfiguracyjnego Borgmatic. Domyślnie config.yaml.

  • borgmatic_timer_hour: Godzina, w której regularne zadanie tworzenia i usuwania w cron/timerze systemd będzie się wykonywać. Domyślnie {{ 6 | random }}.

  • borgmatic_timer_minute: Minuta, w której regularne zadanie tworzenia i usuwania w cron/timerze systemd będzie się wykonywać. Domyślnie {{ 59 | random }}.

  • borgmatic_hooks: Hooki do monitorowania kopii zapasowych, np. za pomocą Healthchecks. Zobacz oficjalną dokumentację po więcej.

  • borgmatic_timer: Jeśli zmienna jest ustawiona, timer jest instalowany. Należy wybrać między cron a systemd.

  • borgmatic_relocated_repo_access_is_ok: Ominięcie błędu Borg dotyczącego repozytorium, które zostało przeniesione. Domyślnie false.

  • borgmatic_store_atime: Przechowywanie atime w archiwum. Domyślnie true.

  • borgmatic_store_ctime: Przechowywanie ctime w archiwum. Domyślnie true.

  • borgmatic_version: Wymuszenie określonej wersji borgmatic do zainstalowania.

  • borg_user: Nazwa użytkownika do tworzenia kopii zapasowych (konto usługi).

  • borg_group: Nazwa grupy do tworzenia kopii zapasowych (konto usługi).

Współpraca

Zgłoszenia zmian (PR) są mile widziane, o ile dodają funkcje istotne dla znaczącej liczby użytkowników. Wszystkie PR są testowane pod kątem stylu i funkcjonalności. Aby uruchomić testy lokalnie (potrzebuje Dockera):

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

Licencja

MIT/BSD

Autor

© 2018-2023 Manuel Riel i współpracownicy.

O projekcie

Set up backup to remote machine using Borg and Borgmatic.

Zainstaluj
ansible-galaxy install borgbase.ansible_role_borgbackup
Licencja
mit
Pobrania
34.4k
Właściciel
Simple and Secure Offsite Backups