papanito.borg
Ansible Rolle "papanito.borg"
Diese Ansible Rolle installiert und richtet regelmäßige Backups mit borg ein. Die Rolle erledigt Folgendes:
[Optional] Löschen des vorhandenen Repositories
Initialisierung eines Repositories unter
protocol
://backup_server
:target_dir
odertarget_dir
Hinweise
Falls das Repository
target_dir
bereits existiert, wird die Initialisierung übersprungen. Wennbackup_server
nicht angegeben ist, nimmt die Rolle ein lokales Backup an, d.h. in ein lokales Verzeichnis.Erstellen eines
systemd
-Dienstes, der regelmäßig (gemäßbackup_schedule
) das Skriptborg.sh
von borgbackup.org ausführt.Es wird ein individuelles borg-Skript namens
automatic-backup-{{service_name}}.sh
in/opt/borg_backup
erstellt, das mit folgenden Parametern angepasst wird:backup_source_dir
backup_exclude_file
oderbackup_exclude_list
backup_schedule
Anforderungen
Keine
Rollen-Variablen
Dies sind alle Variablen
Parameter | Beschreibung | Standardwert |
---|---|---|
backup_server |
Name des Backup-Servers - wenn nicht definiert, wird ein lokales Backup angenommen | - |
backup_user |
Name des Benutzers, der sich mit dem Server verbindet | - |
backup_port |
Port, um sich mit backup_server zu verbinden |
- |
protocol |
Protokoll, das zur Verbindung mit backup_server verwendet wird |
ssh |
backup_name |
[pflichtig] Name des Backups | |
backup_encryption_key |
[pflichtig] Passphrase für den Verschlüsselungsschlüssel mit repokey |
- |
backup_encryption_method |
Borg Verschlüsselungsmethode, derzeit nur repokey implementiert |
repokey |
target_dir |
Zielverzeichnis der Backups auf dem backup_server |
"./backups/{{ backup_name }}" |
backup_delete |
WARNUNG Wenn auf true gesetzt, wird das vorhandene Backup-Repository gelöscht |
false |
backup_create |
Erstellung des Repositories. Sie können die Rolle verwenden, um ein vorhandenes Repository explizit zu löschen, indem Sie die Rolle mit -e backup_delete=true -e backup_create=false ausführen |
true |
backup_schedule |
Systemd-Plannotierung für das tägliche Backup | *-*-* 03:00:00 |
backup_include_list |
Liste der Quellverzeichnisse für Backups | - |
backup_exclude_file |
EXCLUDEFILE , das Ausschlussmuster enthältHat Vorrang vor backup_exclude_list |
- |
backup_exclude_list |
Liste von Mustern, die als --exclude 'PATTERN' hinzugefügt werden |
- |
Die folgenden Parameter beziehen sich auf die systemd-Dienstdatei:
Parameter | Beschreibung | Standardwert |
---|---|---|
systemd_target_dir |
Ort, an dem die .service -Dateien kopiert werden |
/etc/systemd/system/ |
borg_systemd_user |
Benutzer für den systemd-Dienst | backup |
borg_systemd_group |
Gruppe für den systemd-Dienst | backup |
borg_systemd_on_failure |
Wenn gesetzt, wird ein [OnFailure]-Eintrag in der Dienstdatei erstellt | - |
systemd_script_mode |
Modus der Skriptdatei | 0774 |
systemd_service_mode |
Modus der Dienstdatei | 0644 |
Das bereitgestellte Skript definiert auch die Optionen für prune
, wie in borg prune beschrieben. Werte, die eine Zahl erwarten, aber deren Variable nicht definiert ist, werden nicht angegeben.
Parameter | Beschreibung | Standardwert |
---|---|---|
backup_prune_dryrun |
-n, --dry-run keine Änderungen am Repository vornehmen |
false |
backup_prune_force |
--force gezwungenes Prunen von beschädigten Archiven |
false |
backup_prune_stats |
-s, --stats Statistiken für das gelöschte Archiv ausgeben |
true |
backup_prune_list |
--list ausführliche Liste der Archive, die beibehalten/gelöscht werden |
true |
backup_prune_keep_within |
--keep-within INTERVAL alle Archive innerhalb dieses Zeitintervalls behalten |
- |
backup_prune_keep_last |
--keep-last, --keep-secondly Anzahl der zweitlich zu behaltenden Archive |
- |
backup_prune_keep_minutely |
--keep-minutely Anzahl der minütlich zu behaltenden Archive |
- |
backup_prune_keep_hourly |
-H, --keep-hourly Anzahl der stündlich zu behaltenden Archive |
- |
backup_prune_keep_daily |
-d, --keep-daily Anzahl der täglich zu behaltenden Archive |
- |
backup_prune_keep_weekly |
-w, --keep-weekly Anzahl der wöchentlich zu behaltenden Archive |
- |
backup_prune_keep_monthly |
-m, --keep-monthly Anzahl der monatlich zu behaltenden Archive |
- |
backup_prune_keep_yearly |
-y, --keep-yearly Anzahl der jährlich zu behaltenden Archive |
- |
backup_prune_save_space |
--save-space langsamer arbeiten, aber weniger Speicherplatz verwenden |
false |
Um sensible Informationen verborgen zu halten, empfehle ich die Verwendung von ansible-vault
.
Sie können die Passwortdatei in ansible.cfg
definieren, sodass keine Vault-Parameter angegeben werden müssen. Das verschlüsselte Variable backup_encryption_key
kann wie folgt erstellt werden:
ansible-vault encrypt_string 'SupersecretPa$$phrase' --name 'backup_encryption_key'
Abhängigkeiten
Keine
Beispiele
Beispiel-Playbook für Remote-Backup
Hier ein Beispiel, wie Sie Ihre Rolle verwenden können (zum Beispiel mit variablen Parameterübergaben):
- hosts: localhost
vars:
- backup_server: borg.intra
- backup_user: borguser
- backup_name: mybackupname
- backup_encryption_key: test
- backup_port: 23
- target_dir: "/var/backups/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
roles:
- role: papanito.borg
Dies wird ein Backup unter ssh://[email protected]:/var/backup/mybackupname
erstellen und die folgenden systemd-Dateien:
/opt/borg_backup/automatic-backup-mybackupname-borg.intra.sh
(Backup-Skript)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.service
(systemd-Dienstdatei)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.timer
(systemd-Timerdatei)
Beispiel-Playbook für lokales Backup
Hier ein Beispiel, wie Sie Ihre Rolle verwenden können (zum Beispiel mit variablen Parameterübergaben):
- hosts: localhost
vars:
- backup_name: mybackupname
- backup_encryption_key: test
- target_dir: "/var/backup/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
Dies wird ein Backup unter /var/backup/mybackupname
erstellen und die folgenden systemd-Dateien:
/opt/borg_backups/automatic-backup-mybackupname-local.sh
(Backup-Skript)/etc/systemd/system/automatic-backup-mybackupname-local.service
(systemd-Dienstdatei)/etc/systemd/system/automatic-backup-mybackupname-local.timer
(systemd-Timerdatei)
Lizenz
Dies ist freie Software, die unter den Bedingungen der Apache v2 Lizenz veröffentlicht wird.
Autor
ansible-galaxy install papanito.borg