newtonne.backup
Ansible Rola: Kopia zapasowa
Instaluje i konfiguruje borgmatic oraz borg do automatycznego tworzenia kopii zapasowych plików oraz baz danych MySQL i PostgreSQL.
Wymagania
Opcjonalne wymagania:
cron
musi być zainstalowane, aby zautomatyzować proces tworzenia kopii zapasowych.Musi być zainstalowana baza danych MySQL lub zgodna z MySQL, aby móc tworzyć kopie zapasowe baz danych MySQL. To samo dotyczy baz danych PostgreSQL.
Zmienne roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):
Dotyczące konfiguracji Borgmatic
backup_directories: []
Lista katalogów (lub pojedynczych plików) do kopii zapasowej.
backup_mysql_databases: []
Lista baz danych MySQL do skopiowania. Zobacz borgmatic - haki do zrzutu bazy danych po więcej informacji.
backup_postgresql_databases: []
Lista baz danych PostgreSQL do skopiowania. Zobacz borgmatic - haki do zrzutu bazy danych po więcej informacji.
backup_repositories: []
Lista repositariów borg
, do których będą zapisywane kopie zapasowe. Muszą być utworzone wcześniej za pomocą borg init
. Zobacz także dokumentację borg na temat adresów repozytoriów.
backup_location_options: {}
backup_storage_options: {}
backup_retention_options: {}
backup_consistency_options: {}
backup_hooks_options: {}
Te zmienne mogą być używane do dostarczenia dodatkowej konfiguracji do borgmatic
, na przykład hasła szyfrującego do repozytorium borg
lub dodatkowych/alternatywnych skryptów/komend. Zobacz schemat borgmatic po pełną listę opcji konfiguracyjnych.
backup_hooks_globlist: hooks/*
Wzory glob, które będą używane do znajdowania skryptów haków na maszynie kontrolnej.
backup_hooks_directory: /etc/borgmatic/hooks
Katalog, do którego będą kopiowane skrypty haków borgmatic
znalezione przez powyższe wzory glob.
Ogólne
backup_cron_jobs
- schedule: "0 3 * * *"
# action: create
Lista specyfikacji czasu cron i działań do wykonania. Jeśli nie jest określona akcja, borgmatic
wykona wszystkie działania, to znaczy, prune, create i check (zobacz dokumentację borgmatic - konfiguracja kopii zapasowych). Jeśli zostanie pozostawione puste, nie zostanie skonfigurowany żaden crontab.
backup_cron_path: "{{ backup_borg_path | dirname }}:/usr/bin:/bin"
Wartość $PATH
do ustawienia na początku crontab.
backup_verbosity: 0
Wybór stopnia szczegółowości dla borgmatic
. Zobacz dokumentację linii poleceń borgmatic.
backup_user: root
Użytkownik, który wykona kopie zapasowe i będzie właścicielem różnych plików i katalogów związanych z kopią zapasową.
backup_group: root
Grupa, która będzie właścicielem różnych plików i katalogów związanych z kopią zapasową.
backup_config_directory: /etc/borgmatic
Katalog, w którym zostanie umieszczony plik konfiguracyjny borgmatic
.
backup_log_file: /var/log/borgmatic.log
Plik, do którego będą zapisywane wyniki borgmatic
.
Dotyczące instalacji
backup_borg_keyserver: hkps://keys.openpgp.org
Serwer kluczy GPG, z którego pobierany jest publiczny klucz borg
.
backup_borg_gpg_fpr: 6D5BEF9ADD2075805747B70F9F88FB52FAF7B393
Odcisk palca publicznego klucza borg
. Zobacz dokumentację borg - bezpieczeństwo.
backup_borg_url: https://github.com/borgbackup/borg/releases/download
URL, z którego będzie pobierany binarny plik borg
.
backup_borg_asset: borg-linux{{ ansible_architecture [-2:] }}
Nazwa zasobu binarnego borg
do pobrania.
backup_borg_version: 1.1.17
Wersja binarnego pliku borg
do pobrania.
backup_borg_path: /usr/local/bin/borg
Ścieżka, w której zainstalowany zostanie plik borg
. Zauważ, że nie będzie podejmowana próba zainstalowania borg
, jeśli ten plik już istnieje.
backup_borgmatic_version: 1.5.20
Wersja borgmatic
do zainstalowania za pomocą pip.
backup_borgmatic_venv: /etc/borgmatic/venv
Virtualenv, w którym pip zainstaluje borgmatic
. Zostanie utworzony, jeśli jeszcze nie istnieje.
Zależności
Brak
Przykładowy playbook
- hosts: servers
vars:
backup_directories:
- /etc/myapp
- /var/myapp
backup_repositories:
- user@host1:server_backup1
- user@host2:server_backup2
backup_storage_options:
encryption_passphrase: secretpassword
backup_retention_options:
keep_daily: 7
keep_weekly: 4
backup_cron_jobs:
- schedule: "0 2 * * *"
roles:
- { role: newtonne.backup }
Licencja
MIT
Backup files, and MySQL and PostgreSQL databases using borg and borgmatic.
ansible-galaxy install newtonne.backup