gantsign.backup
Ansible-Rolle: Backup
Diese Rolle dient zum Sichern und Wiederherstellen von Dateien und Verzeichnissen. Sie verwendet rsync, ist aber für die Verwendung mit einem lokal montierten Backup-Laufwerk gedacht.
Während der Bereitstellung wird diese Rolle alle zuvor gesicherten Dateien und Verzeichnisse wiederherstellen. Nach dem Neustart führt das Betriebssystem alle 5 Minuten und während des Herunterfahrens inkrementelle Backups durch.
Das Backup ist ein einfaches Spiegelbild des Quellverzeichnisses, frühere Dateiversionen werden verworfen. Der Hauptzweck besteht darin, Dateien zwischen den Neubauten Ihrer lokalen Entwicklungs-VM zu speichern. Wenn Sie es sich nicht leisten können, Ihre Dateien zu verlieren oder zu ersetzen, verwenden Sie stattdessen eine entfernte Backup-Lösung mit Versionierung.
Diese Rolle ist hauptsächlich für das Sichern und Wiederherstellen des Inhalts eines Benutzer-Homeverzeichnisses gedacht.
Anforderungen
Ansible >= 2.9
Linux-Distribution
Debian-Familie
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Hinweis: Andere Versionen sollten ebenfalls funktionieren, wurden jedoch nicht getestet.
Rollenvariablen
Die folgenden Variablen ändern das Verhalten dieser Rolle:
# Die Frequenz, mit der das Backup durchgeführt wird
backup_frequency_minutes: 5
# Benutzer, der die zu sichernden/wiederherstellenden Dateien besitzt
backup_user: # Erforderlich
# Das Quellverzeichnis, das die zu sichernden Dateien enthält (muss mit / enden)
backup_src: # Erforderlich
# Das Zielverzeichnis, in das die Dateien gesichert werden sollen (muss mit / enden)
backup_dest: # Erforderlich
# Der rsync-Filter für die einzuschließenden/ausschließenden Dateien/Verzeichnisse
backup_filter: |
!
# Alles einbeziehen
+ /*
# Verzeichnis für Backup-Skripte
backup_script_dir: '~/.backup'
# Der Name, der für cron verwendet werden soll
backup_cron_name: backup
# Der Name, der für den systemd-Dienst verwendet werden soll
backup_service_name: backup
Beispiel-Playbooks
Hier ist ein einfaches Beispiel-Playbook:
- hosts: servers
roles:
- role: gantsign.backup
backup_user: beispiel_benutzername
backup_src: /home/beispiel_benutzername/
backup_dest: /mnt/backup/beispiel_benutzername/
backup_filter: |
# Filter zurücksetzen
!
# Datei/Verzeichnis einbeziehen
+ /include_me
# Unterverzeichnis einbeziehen (nur erforderlich, wenn Sie andere Unterverzeichnisse ausschließen)
+ /include_me/me_auch
# Alles außer me_auch ausschließen
- /include_me/*
# Nach Dateinamen/Verzeichnisnamen ausschließen
- tmp
# Alles andere ausschließen
- /*
Hier ist ein Beispiel-Playbook aus der Praxis:
- hosts: servers
roles:
- role: gantsign.backup
backup_user: vagrant
backup_src: /home/vagrant/
backup_dest: /var/persistent/home/vagrant/
backup_filter: |
!
+ /.atom
+ /.atom
+ /.atom/config.cson
- /.atom/*
+ /.bash_history
+ /.config
+ /.config/Code
+ /.config/Code/User
+ /.config/Code/User/settings.json
- /.config/Code/User/*
- /.config/Code/*
- /.config/*
+ /.gitconfig
+ /.gnupg
+ /.m2
- /.m2/repository
- /.m2/wrapper
+ /.ssh
- /.ssh/authorized_keys
+ /workspace
+ /.zsh_history
- target/*
- build/*
- node_modules
- /*
Weitere Rollen von GantSign
Weitere Rollen von GantSign finden Sie auf Ansible Galaxy.
Entwicklung & Test
Dieses Projekt verwendet Molecule zur Unterstützung bei der Entwicklung und dem Testen. Die Rolle wird mit Testinfra und pytest getestet.
Für Entwicklung oder Tests müssen Sie folgendes installiert haben:
Da die Installation der obigen Software kompliziert sein kann, enthält dieses Projekt Molecule Wrapper. Molecule Wrapper ist ein Shell-Skript, das Molecule und dessen Abhängigkeiten (außer Linux) installiert und dann Molecule mit dem von Ihnen übergebenen Befehl ausführt.
Um diese Rolle mit Molecule Wrapper zu testen, führen Sie den folgenden Befehl von der Projektwurzel aus:
./moleculew test
Hinweis: Einige der Abhängigkeiten benötigen sudo
-Berechtigungen zur Installation.
Lizenz
MIT
Autoreninformation
John Freeman
GantSign Ltd.
Firmennummer 06109112 (in England registriert)
ansible-galaxy install gantsign.backup