borgbase.ansible_role_borgbackup
Rola Ansible: Klient BorgBackup
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 zainstalowaniaborg(backup)iborgmatic.borg_distro_packages: zawiera nazwy pakietów dystrybucji dlaborg(backup)iborgmatic, używane tylko jeśliborg_install_methodjest ustawione napackage.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 jestpipdo instalacji borgmatic. Aby zainstalować za pomocą menedżera pakietów dystrybucji, ustaw to napackagei (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żywaniuborg_install_method: packagena dystrybucjach opartych na RHEL, repozytorium EPEL jest wymagane. Aby wyłączyć sprawdzanie (np. używając niestandardowego lustra zamiast pakietuepel-release), ustaw to nafalse. Domyślnie jest to{{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }}(czylitruew 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ślnietrue.borg_pip_packages: Pakiety zależności (pip) do zainstalowaniaborg(backup)iborgmatic.borg_remote_path: Ścieżka do wykonalnego pliku borg na zdalnym serwerze. Domyślnie będzie toborg.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ślnieid_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 dlaborg(backup)iborgmatic.borgmatic_check_last: Liczba archiwów do sprawdzenia. Domyślnie3.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ślnieconfig.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ędzycronasystemd.borgmatic_relocated_repo_access_is_ok: Ominięcie błędu Borg dotyczącego repozytorium, które zostało przeniesione. Domyślniefalse.borgmatic_store_atime: Przechowywanie atime w archiwum. Domyślnietrue.borgmatic_store_ctime: Przechowywanie ctime w archiwum. Domyślnietrue.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.
Set up backup to remote machine using Borg and Borgmatic.
ansible-galaxy install borgbase.ansible_role_borgbackup