paulfantom.restic
Ansible Rolle: restic
WICHTIG - Projekt archiviert
Das Projekt ist archiviert, da ich kein Interesse mehr an der Wartung habe (ich benutze es nicht mehr). Ich stelle es gerne wieder zur Verfügung, wenn jemand Interesse hat, es zu pflegen. Wenn du so eine Person bist, schreib mir eine E-Mail an paulfantom@gmail.com.
Beschreibung
Setze restic - ein schnelles, sicheres und effizientes Backup-Programm - ein.
Voraussetzungen
- Ansible > 2.2
- bzip2 muss auf dem Zielrechner installiert sein (dem, auf dem Ansible installiert ist)
Rollenvariablen
Alle übersteuerbaren Variablen sind in der Datei defaults/main.yml sowie in der untenstehenden Tabelle gespeichert.
Name | Standardwert | Beschreibung |
---|---|---|
restic_version |
0.9.6 | Version des restic-Pakets. Akzeptiert auch "latest" als Parameter. |
restic_user |
"root" | Systembenutzer, unter dem restic läuft |
restic_group |
"root" | Systemgruppe, unter der restic läuft |
restic_shell |
"/bin/false" | Die Shell für den restic-Benutzer. Ändere dies, wenn du dich als dieser Benutzer anmelden möchtest |
restic_install_path |
"/usr/local/bin" | Verzeichnis, in dem die restic-Binärdatei installiert wird |
restic_cron_mailto |
restic_user | An wen die Ergebnisse der restic-Cronjobs gesendet werden, auf "" setzen, um keine E-Mails zu senden |
restic_cron_stdout_file |
null | In welche Datei die restic-Ausgaben protokolliert werden, null bedeutet, dass sie in die E-Mail aufgenommen werden, /dev/null verwenden, um sie zu verwerfen |
restic_cron_stderr_file |
null | In welche Datei die restic-Fehler protokolliert werden, null bedeutet, dass sie in die E-Mail aufgenommen werden, /dev/null verwenden, um sie zu verwerfen |
restic_sudo_command_whitelist |
[] | Liste von Befehlen, die restic mit sudo ausführen darf |
restic_repos |
[] | Konfiguration der restic-Repositories und Cronjobs. Weitere Infos in defaults/main.yml |
Sicherheit
Um hohe Sicherheit zu gewährleisten, kann diese Rolle es ermöglichen, dass restic unter einem anderen Benutzer als root ausgeführt wird und dennoch schreibgeschützten Zugriff auf Dateien ermöglicht. Dies wurde durch PR#1483 im restic-Repository implementiert.
Wenn du bestimmte Tools als ein anderer Benutzer ausführen musst, stelle sicher, dass diese in restic_sudo_command_whitelist
aufgeführt sind:
restic_sudo_command_whitelist:
- command: /usr/bin/ein_backup_bezogener_befehl_der_sudo_braucht
runas: root
Dann füge in deinem tatsächlichen Backup-Befehl den Befehl als sudo -u root /usr/bin/ein_backup_bezogener_befehl_der_sudo_braucht
hinzu.
Hilfsprogramme
Diese Rolle installiert auch Hilfsskripte im restic_install_path
. Diese Skripte sind nach deinem Repository benannt und stellen sicher, dass die Umgebungsvariablen für dieses Repository korrekt sind.
Zum Beispiel, wenn du ein restic-Repository mit dem Namen testrepo
hast, könntest du den Befehl restic-testrepo
verwenden, der restic
mit den richtigen Umgebungsvariablen zur Manipulation dieses Repositories ausführt.
Beispiel
Playbook
Verwende es in einem Playbook wie folgt:
- hosts: all
roles:
- paulfantom.restic
Lokale Tests
Die bevorzugte Methode, die Rolle lokal zu testen, ist die Verwendung von Docker und molecule (v2.x). Du musst Docker auf deinem System installieren. Siehe "Erste Schritte" für ein passendes Docker-Paket für dein System. Alle Pakete, die du benötigst, können in einer Zeile angegeben werden:
pip install ansible 'ansible-lint>=3.4.15' 'molecule>2.13.0' docker 'testinfra>=1.7.0' jmespath
Dies sollte ähnlich sein wie das, was im Abschnitt install
der .travis.yml
-Datei aufgeführt ist.
Nach der Installation der Test-Suite kannst du den Test mit dem Befehl
molecule test --all
ausführen. Für weitere Informationen über molecule gehe zu ihren Dokumenten.
Travis CI
Die Kombination von molecule und travis CI ermöglicht es, zu testen, wie neue PRs mit mehreren Ansible-Versionen und mehreren Betriebssystemen funktionieren werden. Dies ermöglicht auch das Erstellen von Testszenarien für verschiedene Rollenkonfigurationen. Infolgedessen ist die Testmatrix recht groß und dauert länger als lokale Tests, also sei bitte geduldig.
Mitwirken
Siehe Mitwirkungsrichtlinie.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für weitere Details.
Fast, secure, efficient backup program
ansible-galaxy install paulfantom.restic