gantsign.backup

Ansible-Rolle: Backup

Tests Ansible Galaxy Lizenz

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)

Über das Projekt

Role for backing up and restoring files and directories.

Installieren
ansible-galaxy install gantsign.backup
GitHub Repository
Lizenz
mit
Downloads
2.7k
Besitzer