timorunge.freeipa_server_backup
kopia_zaplec_freeipa_server
Ta rola zajmuje się kopiami zapasowymi Twoich serwerów FreeIPA.
Wymagania
Ta rola wymaga Ansible 2.6.0 lub wyższej.
Możesz łatwo zainstalować (i zdefiniować) stabilną wersję za pomocą pip:
pip install ansible==2.7.9
Wszystkie wymagania platformowe są wymienione w pliku metadanych.
Aby użyć tej roli, zapoznaj się z zależnościami.
Sprawdź również oficjalną dokumentację.
Instalacja
ansible-galaxy install timorunge.freeipa_server_backup
Zmienne Roli
Zmienne, które można przekazać do tej roli oraz ich krótki opis to:
Na ten moment niestety nie jest możliwe ustawienie
katalogu na kopie zapasowe. To jest ograniczenie samego polecenia ipa-backup
(domyślna lokalizacja to /var/lib/ipa/backup
).
# Definiuje maksymalny wiek kopii zapasowych (w dniach)
# Typ: Int
freeipa_server_backup_max_age: 14
# Określa czas, kiedy ma się odbyć pełna kopia zapasowa
# (to zatrzyma i uruchomi usługi ipa!)
# Typ: Dict
freeipa_server_backup_cron_full:
minute: "{{ 59 | random(seed=inventory_hostname) }}"
month: "*"
weekday: "*"
hour: 4
day: "*"
state: present
# Określa czas, kiedy ma się odbyć online kopia zapasowa
# Typ: Dict
freeipa_server_backup_cron_online:
minute: "{{ 59 | random(seed=inventory_hostname) }}"
month: "*"
weekday: "*"
hour: "*"
day: "*"
state: present
Przykłady
1) Zainstaluj kopię zapasową serwera FreeIPA z domyślnymi ustawieniami
- hosts: freeipa-server-backup
roles:
- timorunge.freeipa_server_backup
2) Zainstaluj kopię zapasową serwera FreeIPA z niestandardowymi ustawieniami
- hosts: freeipa-server-backup
vars:
freeipa_server_backup_max_age: 7
freeipa_server_backup_cron_full:
day: "*"
hour: 3
minute: "11"
month: "*"
state: present
weekday: "*"
freeipa_server_backup_cron_online:
day: "*"
hour: "*"
minute: 33
month: "*"
state: present
weekday: "*"
freeipa_server_backup_cron_delete:
day: "*"
hour: 3
minute: 55
month: "*"
state: present
weekday: "*"
roles:
- timorunge.freeipa_server_backup
3) Zainstaluj kopię zapasową serwera FreeIPA i przenieś dane do innej lokalizacji (przez rsync)
- hosts: freeipa-server-backup
vars:
freeipa_server_backup_mv_location: rsync
freeipa_server_backup_rsync_opts:
- "-avq"
- "--ignore-existing"
- '-e "ssh -i /home/ipa-backups/.ssh/id_rsa"'
freeipa_server_backup_rsync_dest: [email protected]:/var/backups/ipa-backup
roles:
- timorunge.freeipa_server_backup
Testowanie
Testy są przeprowadzane za pomocą Docker i docker_test_runner, które uruchamiają poniższe kontenery:
- CentOS 7
- Ubuntu 16.04 (Xenial Xerus)
- Ubuntu 17.10 (Artful Aardvark)
- Ubuntu 18.04 (Bionic Beaver)
- Ubuntu 18.10 (Cosmic Cuttlefish)
Ansible 2.7.9 jest zainstalowane we wszystkich kontenerach i stosuje testowy playbook lokalnie.
Aby uzyskać więcej szczegółów i dodatkowe kontrole, zapoznaj się z konfiguracją docker_test_runner oraz Docker entrypoint.
# Testowanie lokalne:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
Zależności
Ta rola wymaga działającego Serwera FreeIPA (Repozytorium Github).
Jeśli używasz systemu operacyjnego, który nie zapewnia pakietów FreeIPA bezpośrednio z repozytoriów, możesz skorzystać z wymienionej powyżej roli Ansible.
W takim przypadku upewnij się, że masz ustawioną freeipa_server_backup_install_pkgs
na false
(co wyłączy całkowitą instalację pakietów tej roli).
Todo
- Dodaj możliwość szyfrowania kopii zapasowych (
--gpg
i--gpg-keyring=GPG_KEYRING
) - Przenoszenie plików do zewnętrznej lokalizacji (s3,
rsync i ssh)
Licencja
Licencja BSD 3-Klauzowa "Nowa" lub "Zrewidowana"
Informacje o autorze
- Timo Runge
FreeIPA Identity Management server backup.
ansible-galaxy install timorunge.freeipa_server_backup