papanito.borg
Rola Ansible "papanito.borg"
Rola Ansible do instalacji i konfiguracji regularnych kopii zapasowych za pomocą borg. Rola wykonuje następujące czynności:
[Opcjonalnie] Usuwa istniejące repozytorium
Inicjalizuje repozytorium w
protocol
://backup_server
:target_dir
lubtarget_dir
Uwaga
Jeśli repozytorium
target_dir
już istnieje, inicjalizacja zostanie pominięta Jeślibackup_server
nie jest określony, rola zakłada lokalną kopię zapasową, tj. w lokalnym kataloguTworzy usługę
systemd
, która regularnie (zgodnie zbackup_schedule
) uruchamia skryptborg.sh
z borgbackup.orgW
/opt/borg_backup
powstanie oddzielny skrypt borg o nazwieautomatic-backup-{{service_name}}.sh
, który jest dostosowany do:backup_source_dir
backup_exclude_file
lubbackup_exclude_list
backup_schedule
Wymagania
Brak
Zmienne roli
Oto wszystkie zmienne:
Parametr | Opis | Domyślna wartość |
---|---|---|
backup_server |
Nazwa serwera kopii zapasowej - jeśli nie jest zdefiniowana, zakłada lokalną kopię zapasową | - |
backup_user |
Nazwa użytkownika do połączenia z serwerem | - |
backup_port |
Port do połączenia z backup_server |
- |
protocol |
Protokół używany do połączenia z backup_server |
ssh |
backup_name |
[obowiązkowy] Nazwa kopii zapasowej | |
backup_encryption_key |
[obowiązkowy] Hasło dla klucza szyfrowania używając repokey |
- |
backup_encryption_method |
Metoda szyfrowania Borg, obecnie wdrożona tylko repokey |
repokey |
target_dir |
Docelowy katalog kopii zapasowych na backup_server |
"./backups/{{ backup_name }}" |
backup_delete |
OSTRZEŻENIE Jeśli ustawione na true , istniejące repozytorium kopii zapasowej zostanie usunięte |
false |
backup_create |
Tworzenie repozytorium. Możesz użyć roli do explicznego usunięcia istniejącego repository uruchamiając rolę z -e backup_delete=true -e backup_create=false |
true |
backup_schedule |
Notacja harmonogramu systemd dla codziennej kopii zapasowej | *-*-* 03:00:00 |
backup_include_list |
Lista katalogów źródłowych do backupu | - |
backup_exclude_file |
EXCLUDEFILE zawierający wzorce wykluczeńMa pierwszeństwo przed backup_exclude_list |
- |
backup_exclude_list |
Lista wzorców, które zostaną dodane jako --exclude 'PATTERN' |
- |
Poniższe parametry dotyczą pliku usługi systemd:
Parametr | Opis | Domyślna wartość |
---|---|---|
systemd_target_dir |
Miejsce, w którym można skopiować pliki .service |
/etc/systemd/system/ |
borg_systemd_user |
Użytkownik dla usługi systemd | backup |
borg_systemd_group |
Grupa dla usługi systemd | backup |
borg_systemd_on_failure |
Jeśli ustawione, doda wpis [OnFailure] w pliku usługi | - |
systemd_script_mode |
Tryb pliku skryptu | 0774 |
systemd_service_mode |
Tryb pliku usługi | 0644 |
Skrypt, który jest wdrażany, również definiuje opcje dla prune
, jak opisano w borg prune. Wartości, które oczekują liczby, ale zmienna nie jest zdefiniowana, nie zostaną dołączone.
Parametr | Opis | Domyślna wartość |
---|---|---|
backup_prune_dryrun |
-n, --dry-run nie zmienia repozytorium |
false |
backup_prune_force |
--force wymusza usunięcie uszkodzonych archiwów |
false |
backup_prune_stats |
-s, --stats wyświetla statystyki dla usuniętego archiwum |
true |
backup_prune_list |
--list wyświetla szczegółową listę archiwów, które są zachowywane/usuwane |
true |
backup_prune_keep_within |
--keep-within INTERVAL zachowuje wszystkie archiwa w tym przedziale czasowym |
- |
backup_prune_keep_last |
--keep-last, --keep-secondly liczba archiwów, które mają być zachowane |
- |
backup_prune_keep_minutely |
--keep-minutely liczba archiwów, które mają być zachowane |
- |
backup_prune_keep_hourly |
-H, --keep-hourly liczba archiwów, które mają być zachowane |
- |
backup_prune_keep_daily |
-d, --keep-daily liczba archiwów, które mają być zachowane |
- |
backup_prune_keep_weekly |
-w, --keep-weekly liczba archiwów, które mają być zachowane |
- |
backup_prune_keep_monthly |
-m, --keep-monthly liczba archiwów, które mają być zachowane |
- |
backup_prune_keep_yearly |
-y, --keep-yearly liczba archiwów, które mają być zachowane |
- |
backup_prune_save_space |
--save-space działa wolniej, ale zajmuje mniej miejsca |
false |
Aby ukryć dane wrażliwe, zaleca się użycie ansible-vault
.
Możesz zdefiniować plik hasła w ansible.cfg
, aby nie musieć określać żadnego parametru vault. Zapisany zmienna backup_encryption_key
może być stworzona w następujący sposób:
ansible-vault encrypt_string 'SupersecretPa$$phrase' --name 'backup_encryption_key'
Zależności
Brak
Przykłady
Przykład playbooka zdalnej kopii zapasowej
Zawiera przykład użycia swojej roli (np. z przekazanymi zmiennymi jako parametry):
- hosts: localhost
vars:
- backup_server: borg.intra
- backup_user: borguser
- backup_name: mybackupname
- backup_encryption_key: test
- backup_port: 23
- target_dir: "/var/backups/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
roles:
- role: papanito.borg
To utworzy kopię zapasową w ssh://[email protected]:/var/backup/mybackupname
oraz następujące pliki systemd:
/opt/borg_backup/automatic-backup-mybackupname-borg.intra.sh
(skrypt kopii zapasowej)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.service
(plik usługi systemd)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.timer
(plik czasomierzy systemd)
Przykład playbooka lokalnej kopii zapasowej
Zawiera przykład użycia swojej roli (np. z przekazanymi zmiennymi jako parametry):
- hosts: localhost
vars:
- backup_name: mybackupname
- backup_encryption_key: test
- target_dir: "/var/backups/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
To utworzy kopię zapasową w /var/backup/mybackupname
oraz następujące pliki systemd:
/opt/borg_backups/automatic-backup-mybackupname-local.sh
(skrypt kopii zapasowej)/etc/systemd/system/automatic-backup-mybackupname-local.service
(plik usługi systemd)/etc/systemd/system/automatic-backup-mybackupname-local.timer
(plik czasomierzy systemd)
Licencja
To jest Oprogramowanie Otwarta, wydane na warunkach licencji Apache v2.
Informacje o autorze
ansible-galaxy install papanito.borg