newtonne.backup
Ansible Rolle: Backup
Installiert und konfiguriert borgmatic und borg für die automatisierte Sicherung von Dateien sowie MySQL- und PostgreSQL-Datenbanken.
Anforderungen
Optionale Anforderungen:
cron
muss installiert sein, um die Backups zu automatisieren.MySQL oder eine MySQL-kompatible Datenbank muss installiert sein, um MySQL-Datenbanken zu sichern. Gleiches gilt für PostgreSQL-Datenbanken.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):
Borgmatic konfigurationsbezogen
backup_directories: []
Die Liste der Verzeichnisse (oder einzelnen Dateien), die gesichert werden sollen.
backup_mysql_databases: []
Die Liste der MySQL-Datenbanken, die gesichert werden sollen. Weitere Informationen finden Sie unter borgmatic - Datenbank-Dump-Hooks.
backup_postgresql_databases: []
Die Liste der PostgreSQL-Datenbanken, die gesichert werden sollen. Weitere Informationen finden Sie unter borgmatic - Datenbank-Dump-Hooks.
backup_repositories: []
Die Liste der borg
-Repositories, in die gesichert werden soll. Diese müssen im Voraus mit borg init
erstellt werden. Siehe auch borg-Dokumentation zu Repository-URLs.
backup_location_options: {}
backup_storage_options: {}
backup_retention_options: {}
backup_consistency_options: {}
backup_hooks_options: {}
Diese Variablen können verwendet werden, um zusätzliche Konfigurationen für borgmatic
bereitzustellen, wie z. B. das Verschlüsselungspasswort für das borg
-Repo oder zusätzliche/alternative Hook-Skripte/Befehle. Siehe das borgmatic-Schema für die vollständige Liste der Konfigurationsoptionen.
backup_hooks_globlist: hooks/*
Die Glob-Muster, die die Dateisuchfunktion verwendet, um Hook-Skripte auf der Steuerungsmaschine zu finden.
backup_hooks_directory: /etc/borgmatic/hooks
Das Verzeichnis, in das alle borgmatic
-Hook-Skripte, die durch die obigen Glob-Muster gefunden wurden, kopiert werden.
Allgemein
backup_cron_jobs
- schedule: "0 3 * * *"
# action: create
Die Liste der Cron-Zeitvorgaben und Aktionen, die ausgeführt werden sollen. Wenn keine Aktion angegeben ist, führt borgmatic
alle Aktionen aus, also Prune, Erstellen und Überprüfen (siehe borgmatic-Dokumentation - Backups einrichten). Wenn leer gesetzt, wird keine Crontab konfiguriert.
backup_cron_path: "{{ backup_borg_path | dirname }}:/usr/bin:/bin"
Der Wert von $PATH
, der oben in der Crontab gesetzt werden soll.
backup_verbosity: 0
Die Ausführungsweise von borgmatic
. Siehe borgmatic-Befehlsreferenz.
backup_user: root
Der Benutzer, der die Backups ausführt und die verschiedenen backup-bezogenen Dateien und Verzeichnisse besitzt.
backup_group: root
Die Gruppe, die die verschiedenen backup-bezogenen Dateien und Verzeichnisse besitzt.
backup_config_directory: /etc/borgmatic
Das Verzeichnis, in das die borgmatic
-Konfigurationsdatei gelegt wird.
backup_log_file: /var/log/borgmatic.log
Die Datei, in die die borgmatic
-Ausgabe protokolliert wird.
Installationsbezogen
backup_borg_keyserver: hkps://keys.openpgp.org
Der GPG-Keyserver, von dem der borg
-öffentliche Schlüssel heruntergeladen werden soll.
backup_borg_gpg_fpr: 6D5BEF9ADD2075805747B70F9F88FB52FAF7B393
Der Fingerabdruck des borg
-öffentlichen Schlüssels. Siehe borg-Dokumentation - Sicherheit.
backup_borg_url: https://github.com/borgbackup/borg/releases/download
Die URL, von der die borg
-Binary heruntergeladen werden soll.
backup_borg_asset: borg-linux{{ ansible_architecture [-2:] }}
Der Name des borg
-Binär-Assets, das heruntergeladen werden soll.
backup_borg_version: 1.1.17
Die Version der borg
-Binary, die heruntergeladen werden soll.
backup_borg_path: /usr/local/bin/borg
Der Pfad, wohin die borg
-Binary installiert wird. Beachten Sie, dass kein Versuch unternommen wird, borg
zu installieren, wenn diese Datei bereits vorhanden ist.
backup_borgmatic_version: 1.5.20
Die Version von borgmatic
, die mit pip installiert werden soll.
backup_borgmatic_venv: /etc/borgmatic/venv
Die virtuelle Umgebung, in die pip borgmatic
installiert. Sie wird erstellt, wenn sie noch nicht existiert.
Abhängigkeiten
Keine
Beispiel-Playbook
- hosts: servers
vars:
backup_directories:
- /etc/myapp
- /var/myapp
backup_repositories:
- user@host1:server_backup1
- user@host2:server_backup2
backup_storage_options:
encryption_passphrase: geheimpasswort
backup_retention_options:
keep_daily: 7
keep_weekly: 4
backup_cron_jobs:
- schedule: "0 2 * * *"
roles:
- { role: newtonne.backup }
Lizenz
MIT