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_dirlub- target_dir- Uwaga - Jeśli repozytorium - target_dirjuż istnieje, inicjalizacja zostanie pominięta Jeśli- backup_servernie jest określony, rola zakłada lokalną kopię zapasową, tj. w lokalnym katalogu
- Tworzy usługę - systemd, która regularnie (zgodnie z- backup_schedule) uruchamia skrypt- borg.shz borgbackup.org
- W - /opt/borg_backuppowstanie oddzielny skrypt borg o nazwie- automatic-backup-{{service_name}}.sh, który jest dostosowany do:- backup_source_dir
- backup_exclude_filelub- backup_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 repositoryuruchamiają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 | EXCLUDEFILEzawierają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-runnie zmienia repozytorium | false | 
| backup_prune_force | --forcewymusza usunięcie uszkodzonych archiwów | false | 
| backup_prune_stats | -s, --statswyświetla statystyki dla usuniętego archiwum | true | 
| backup_prune_list | --listwyświetla szczegółową listę archiwów, które są zachowywane/usuwane | true | 
| backup_prune_keep_within | --keep-within INTERVALzachowuje wszystkie archiwa w tym przedziale czasowym | - | 
| backup_prune_keep_last | --keep-last, --keep-secondlyliczba archiwów, które mają być zachowane | - | 
| backup_prune_keep_minutely | --keep-minutelyliczba archiwów, które mają być zachowane | - | 
| backup_prune_keep_hourly | -H, --keep-hourlyliczba archiwów, które mają być zachowane | - | 
| backup_prune_keep_daily | -d, --keep-dailyliczba archiwów, które mają być zachowane | - | 
| backup_prune_keep_weekly | -w, --keep-weeklyliczba archiwów, które mają być zachowane | - | 
| backup_prune_keep_monthly | -m, --keep-monthlyliczba archiwów, które mają być zachowane | - | 
| backup_prune_keep_yearly | -y, --keep-yearlyliczba archiwów, które mają być zachowane | - | 
| backup_prune_save_space | --save-spacedział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