timorunge.freeipa_server_backup
freeipa_server_backup
Dieses Modul kümmert sich um die Backups deiner FreeIPA-Server.
Voraussetzungen
Dieses Modul benötigt Ansible 2.6.0 oder höher.
Du kannst einfach pip verwenden, um eine stabile Version zu installieren (und zu definieren):
pip install ansible==2.7.9
Alle Plattformanforderungen sind in der Metadaten-Datei aufgeführt.
Um dieses Modul zu verwenden, schau dir die Abhängigkeiten an.
Sieh dir auch die offizielle Dokumentation an.
Installation
ansible-galaxy install timorunge.freeipa_server_backup
Variablen des Moduls
Die Variablen, die an dieses Modul übergeben werden können und eine kurze Beschreibung dazu sind wie folgt. (Für alle Variablen, schau dir defaults/main.yml an)
Zurzeit ist es leider nicht möglich, das Backup-Verzeichnis festzulegen. Dies ist eine Einschränkung des ipa-backup
Befehls selbst (der Standardort ist /var/lib/ipa/backup
).
# Definiert das maximale Alter der Backups (in Tagen)
# Typ: Int
freeipa_server_backup_max_age: 14
# Definiere die Zeit, wann ein vollständiges Backup durchgeführt werden soll
# (dies stoppt und startet die ipa-Dienste!)
# Typ: Dict
freeipa_server_backup_cron_full:
minute: "{{ 59 | random(seed=inventory_hostname) }}"
month: "*"
weekday: "*"
hour: 4
day: "*"
state: present
# Definiere die Zeit, wann ein Online-Backup durchgeführt werden soll
# Typ: Dict
freeipa_server_backup_cron_online:
minute: "{{ 59 | random(seed=inventory_hostname) }}"
month: "*"
weekday: "*"
hour: "*"
day: "*"
state: present
Beispiele
1) FreeIPA-Server-Backup mit Standard-Einstellungen installieren
- hosts: freeipa-server-backup
roles:
- timorunge.freeipa_server_backup
2) FreeIPA-Server-Backup mit benutzerdefinierten Einstellungen installieren
- 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) FreeIPA-Server-Backup installieren und die Daten an einen anderen Ort verschieben (mit 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
Tests
Die Tests werden mit Docker und docker_test_runner durchgeführt, die die folgenden Container starten:
- 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 ist in allen Containern installiert und wendet ein Test-Playbook lokal an.
Für weitere Details und zusätzliche Überprüfungen schau dir die docker_test_runner-Konfiguration und den Docker-Einstiegspunkt an.
# Lokal testen:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
Abhängigkeiten
Dieses Modul benötigt einen laufenden FreeIPA Server (Github Repo).
Wenn du ein Betriebssystem verwendest, das keine FreeIPA-Pakete direkt aus den Repositories bereitstellt, kannst du das oben erwähnte Ansible-Modul verwenden.
In diesem Fall stelle sicher, dass du freeipa_server_backup_install_pkgs
auf false
setzt (dies deaktiviert die komplette Paketinstallation dieses Moduls).
ToDo
- Möglichkeit hinzufügen, Backups zu verschlüsseln (
--gpg
und--gpg-keyring=GPG_KEYRING
) - Dateien an einen externen Ort verschieben (s3,
rsync & ssh)
Lizenz
BSD 3-Klausel "New" oder "Revised" Lizenz
Autor Informationen
- Timo Runge