tag1consulting.borgbackup
Rola kopii zapasowej Borg
To jest fork projektu https://github.com/FiaasCo/borgbackup, który został pierwotnie napisany przez Luca Stroobanta i Dietera Verhelsta. Ten fork jest utrzymywany przez Tag1 Consulting, Inc.
Ta rola instaluje kopie zapasowe Borg na serwerach i klientach borgbackup. Zawiera skrypt powłoki 'borg-backup', aby ułatwić korzystanie na kliencie. Obsługiwane opcje to: borg-backup info | init | list | backup | mount. Jeśli zainstalowano, Automysqlbackup uruchomi się jako polecenie przed kopiowaniem zapasowym. Rola wspiera zarówno hostowane lokalnie, jak i zdalne miejsce przechowywania kopii zapasowych, takie jak rsync.net i hetzner storage box jako serwer Borg.
Możliwe jest skonfigurowanie repozytoriów tylko do dopisywania, aby zabezpieczyć kopie zapasowe przed usunięciem z klienta.
Do uruchomienia tej roli wymagana jest wersja Ansible 2.4 lub wyższa.
Ansible Galaxy
Ta rola to tag1consulting.borgbackup
na Ansible Galaxy. Aby użyć tego w playbooku, dodaj poniższe do swojego pliku requirements.txt
:
# https://github.com/tag1consulting/ansible-role-borgbackup
- src: "tag1consulting.borgbackup"
Wymagane zmienne
Zdefiniuj grupę borgbackup_servers w swoim inwentarzu z jednym lub wieloma hostami. Grupa borgbackup_management jest konieczna tylko wtedy, gdy chcesz włączyć tryb tylko do dopisywania i wygaszać kopie zapasowe z bezpiecznych hostów.
[borgbackup_servers]
backup1.fiaas.co
[borgbackup_management]
supersecurehost
Zdefiniuj zmienne grupowe lub hostowe dla swoich punktów końcowych kopii zapasowych i przechowywania:
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
OSTRZEŻENIE: ukośnik / w item.home jest wymagany.
Zdefiniuj borg_passphrase dla każdego hosta. host_vars\client1:
borgbackup_passphrase: Ahl9EiNohr5koosh1Wohs3Shoo3ooZ6p
Domyślnie rola tworzy zadanie cron w /etc/cron.d/borg-backup uruchamiane jako root codziennie o losowej godzinie między 0 a 5 rano w losowej minucie. Nadpisz ustawienia domyślne w razie potrzeby:
borgbackup_client_user: root
borgbackup_cron_day: "*"
borgbackup_cron_minute: "{{ 59|random }}"
borgbackup_cron_hour: "{{ 5|random }}"
Nadpisz borgbackup_client_user w razie potrzeby, na przykład, jeśli masz laptopa z zaszyfrowanym katalogiem domowym - będziesz musiał uruchomić kopię zapasową jako użytkownik tego katalogu.
Ustaw borgbackup_appendonly: True w zmiennych hosta lub grupy, jeśli chcesz repozytoria tylko do dopisywania. W takim przypadku możliwe jest zdefiniowanie nazwy hosta w borgbackup_management_station, gdzie skonfigurowany będzie skrypt „borg prune”. Tylko stacja zarządzająca będzie miała uprawnienia do wygaszania starych kopii zapasowych dla (wszystkich) klientów. To wygeneruje serwer z opcjami klucza ssh --append-only. Jeśli ustawisz borgbackup_appendonly_repoconfig na True, to również wyłączy możliwość usuwania kopii zapasowych z stacji zarządzającej. (Lub przynajmniej: nie będzie można ich usunąć, dopóki nie skonfigurujesz ponownie repozytorium, co obecnie nie jest obsługiwane w skrypcie wygaszania). Pamiętaj o ograniczeniach trybu tylko do dopisywania: usunięte kopie zapasowe mogą wydawać się usunięte, ale są usuwane tylko w dzienniku transakcji, dopóki coś nie zapisze w normalnym trybie w repozytorium.
Upewnij się, że sprawdziłeś skonfigurowane domyślne ustawienia dla tej roli, które zawierają listę domyślnych lokalizacji kopiowanych w backup_include. Nadpisz to w swoim inwentarzu w razie potrzeby.
Instalacja Borg z pakietu EPEL
Borg można zainstalować z pakietu EPEL, ustawiając zmienną:
borgbackup_install_from_pkg: true
Repozytorium EPEL musi być dostępne, aby to się powiodło. Aby zainstalować repozytorium EPEL, korzystając z roli geerlingguy.repo-epel
, ustaw:
borgbackup_install_epel: true
Użycie
Skonfiguruj Borg na serwerze i kliencie:
ansible-playbook -i inventory/test backup.yml -l backup1.fiaas.co
ansible-playbook -i inventory/test backup.yml -l client1.fiaas.co
Dalsze czytanie
Install Borg backup server and client (with rsync.net server support)
ansible-galaxy install tag1consulting.borgbackup