alphanodes.backup

Rola Ansible: Backup

Wykonuj codzienne, tygodniowe i miesięczne kopie zapasowe plików, baz danych MySQL i PostgreSQL na serwerach Debian i Ubuntu.

Rotacja kopii zapasowych jest konfigurowalna, np. można użyć schematu Dziadek-ojciec-syn

Ansible Galaxy

Zależności

brak

Instalacja

Ansible 2+

Użyj narzędzia ansible galaxy CLI:

ansible-galaxy install alphanodes.backup

Zmienne Roli

Dostępne zmienne są wymienione poniżej, wraz z domyślnymi wartościami (zobacz defaults/main.yml):

backup_dir: /srv/backups

Katalog dla kopii zapasowych. Upewnij się, że jest wystarczająco dużo miejsca na tym dysku. Użyj cudzysłowów, aby uniknąć problemów z konwersją (np. z to_nice_yaml)

backup_dir_mode: '0755'

Uprawnienia katalogu dla backup_dir

backup_dir_owner: root

Właściciel katalogu dla backup_dir

backup_dir_group: root

Grupa katalogu dla backup_dir

backup_max_days: 7

Liczba dni dla codziennych zestawów kopii zapasowych. Oznacza to, że przechowywane są tylko zestawy z ostatnich backup_max_days dni. Starsze zestawy są automatycznie usuwane. Wartość musi być => 1.

backup_max_weeks: 1

Liczba tygodni dla tygodniowych zestawów kopii zapasowych. Oznacza to, że przechowywane są tylko zestawy z ostatnich backup_max_weeks tygodni. Starsze zestawy są automatycznie usuwane. Wartość musi być => 1. Tygodniowa kopia jest tworzona w każdy pierwszy dzień tygodnia. Tego dnia tworzona jest tylko ta kopia (a nie dzienna kopia - ponieważ byłoby to duplikat).

backup_max_months: 1

Liczba miesięcy dla miesięcznych zestawów kopii zapasowych. Oznacza to, że przechowywane są tylko zestawy z ostatnich backup_max_months miesięcy. Starsze zestawy są automatycznie usuwane. Wartość musi być => 1. Miesięczna kopia jest tworzona w każdy pierwszy dzień miesiąca. Tego dnia tworzona jest tylko ta kopia (a nie dzienna ani tygodniowa kopia - ponieważ byłoby to duplikat).

backup_remote_host: ''

Nazwa hosta do synchronizacji kopii zapasowych przy użyciu backup_remote_transfer.

backup_remote_port: ''

Port do synchronizacji kopii zapasowych przy użyciu backup_remote_transfer.

backup_remote_dir: ''

Zdalny katalog dla backup_remote_host przy użyciu backup_remote_transfer.

backup_remote_excludes:
  - '*.journal'
  - '.nfs*'
  - '*.tar'

Te pliki są wykluczone z synchronizacji na zdalny host. To jest używane tylko jeśli backup_remote_transfer to rsync.

backup_rsync_options: '-avz --delete'

Opcje rsync dla backup_remote_transfer z użyciem rsync.

backup_remote_transfer: rsync

Typ synchronizacji. Możliwe wartości to: rsync lub lftp.

backup_remote_user: ''

Użytkownik do synchronizacji zdalnej. Jest to używane tylko wtedy, gdy backup_remote_transfer to lftp.

backup_remote_password: ''

Hasło do synchronizacji zdalnej. Jest to używane tylko wtedy, gdy backup_remote_transfer to lftp.

backup_with_borg: ''

Jeśli backupborg powinien być uruchomiony.

backup_db_dump_format: .sql.gz

Niekompresowane pliki SQL (.sql) oraz bzip2 (.bz2), gzip (.gz) i xz. W tej chwili jest używane tylko dla zrzutów mysql.

backup_with_mysql: false

Uruchom zrzut kopii zapasowej MySQL (MariaDB). Wszystkie bazy danych są przechowywane w osobnych plikach.

backup_with_postgresql: false

Uruchom zrzut kopii zapasowej PostgreSQL. Wszystkie bazy danych są przechowywane w osobnych plikach.

backup_with_mongodb: false

Uruchom zrzut kopii zapasowej MongoDB. Wszystkie bazy danych są przechowywane w jednym archiwum.

backup_mongodb_options: '--archive --gzip'

Opcje dla zrzutu mongodb.

backup_mysql_db_excludes:
  - performance_schema
  - information_schema
  - sys
backup_mysql_single_transaction: true
# backup_mysqldump_options: '--extended-insert=true --opt --single-transaction'

Dostosowane opcje mysql (zawsze używany jest sql.gz). Jeśli ustawione to używane jest natywne mysql_dump (bez ansible). Domyślnie nie jest to ustawione.

backup_postgresqldump_options: "--no-owner -Fc"

Opcje zrzutu PostgreSQL.

backup_create_hashfiles: false

Twórz pliki hash dla wszystkich zestawów kopii zapasowych.

backup_files_unsafe_writes: false

Jeśli backup_files_unsafe_writes jest ustawione na tak i zmienione pliki zostaną znalezione podczas tworzenia plików tar, nie będą zgłaszane żadne błędy. Tar działa z dodatkowymi opcjami --warning=no-file-removed --warning=no-file-changed --warning=no-file-ignored. Ta opcja może być nadpisywana dla każdego zestawu z unsafe_writes.

backup_sets: []

Zestawy kopii zapasowych dla kopii plików. name jest używane jako nazwa pliku kopii zapasowej. src to katalog pliku, który ma być zarchiwizowany. unsafe_writes nadpisuje backup_files_unsafe_writes. excludes to lista, która może być używana do wykluczania plików lub katalogów.

backup_one_per_day_limit: true

Utwórz tylko jeden zestaw kopii zapasowej dziennie. Istniejące zestawy kopii zapasowej z tego samego dnia zostaną usunięte.

#sync_master: anything

Jeśli sync_master jest zdefiniowane, kopia zapasowa zostanie pominięta. Możesz użyć tego w środowiskach replikacji.

backup_skip_sync_clients: true

Jeśli sync_master jest zdefiniowane, oznacza to, że jest to klient synchronizacji.

backup_pre_commands: []

Lista poleceń, które powinny być uruchomione przed zrzutem kopii zapasowej.

backup_post_commands: []

Lista poleceń, które są uruchamiane po utworzeniu zrzutu kopii zapasowej.

Przykładowy Playbook

- hosts: server-name
  vars:
    backup_sets:
      - name: etc
        src: /etc
  roles:
    - alphanodes.backup

Rozszerzony przykład Playbook

- hosts: server-name
  vars:
    backup_max_days: 14
    backup_max_weeks: 4
    backup_max_months: 6
    backup_with_postgresql: true
    backup_dir_mode: '0770'
    backup_dir_group: postgres
    backup_sets:
      - name: etc
        src: /etc
      - name: jenkins
        src: /var/lib/jenkins
        unsafe_writes: true
        excludes:
          - builds
          - workspace
  roles:
    - alphanodes.backup

Licencja

Licencja GPL Wersja 3

Informacje o autorze

Ta rola została stworzona w 2018 roku przez AlphaNodes.

O projekcie

Run daily backups for files, MySQL databases and PostgreSQL databases

Zainstaluj
ansible-galaxy install alphanodes.backup
Licencja
gpl-3.0
Pobrania
9.4k
Właściciel
Professional Services with Open Source