tschifftner.duplicity

Ansible Rolle: Duplicity installieren und konfigurieren

Build Status

Installiert Duplicity aus dem Quellcode und verwaltet Backup-Aufgaben auf Debian/Ubuntu Linux-Servern.

Anforderungen

ansible 2.0+

Abhängigkeiten

Keine.

Installation

$ ansible-galaxy install tschifftner.duplicity

Beispiel-Playbook

Verfügbare Variablen sind unten aufgelistet, zusammen mit den Standardwerten (siehe defaults/main.yml):

    - hosts: webservers
      vars:
        # duplictity
        duplicity_known_hosts:
          - host: 'example.org'
            key: 'example.org ssh-rsa AAAAB3NzaC...+PwAK+MPw=='
            state: present
    
        duplicity_config_vars:
          FTP_SERVER: 'sftp://[email protected]/my/folder/'
          FTP_PASSWORD: '*******'
          DEFAULT_PARAMS: '--verbosity info --exclude-device-files --exclude-other-filesystems --exclude-if-present .duplicity-ignore'
    
        duplicity_cronjobs:
          - name: 'Bereinigung älter als 2 Monate'
            user: root
            group: root
            source: /etc/duplicity/duplicity.conf
            hour: 4
            minute: 10
            command: >
              duplicity remove-older-than 2M --force --extra-clean $FTP_SERVER;
              duplicity cleanup --force $FTP_SERVER
    
          - name: 'Backup /var/www'
            user: root
            group: root
            hour: 5
            minute: 21
            source: /etc/duplicity/duplicity.conf
            command: duplicity $DEFAULT_PARAMS --include /var/www --full-if-older-than 1M --exclude '**' / $FTP_SERVER

      roles:
             - { role: tschifftner.duplicity }

Es wird empfohlen, alle Variablen in einer externen Datei zu speichern.

    - hosts: webservers
      vars_files:
        - duplicity-settings.yml
    
      roles:
         - { role: tschifftner.duplicity }

Tipps

  • Verwenden Sie ssh-keyscan -t rsa example.org, um den SSH-Schlüssel für einen Server zu erhalten (verwendet in der Variable duplicity_known_hosts).
  • Es ist möglich, Cronjobs in mehreren Zeilen zu schreiben. Dies kann jedoch zu Problemen mit der Idempotenz führen! Zum Beispiel:
 command: >
   duplicity remove-older-than 2M --force --extra-clean $FTP_SERVER;
   duplicity cleanup --force $FTP_SERVER

Dies wird immer zu einer Änderung führen!

Duplicity-Variablen

duplicity_config_vars:
  SERVER: 'ftp://[email protected]/backups/'
  PASSPHRASE: 'IhrGeheimesPasswort'
  FTP_PASSWORD: '*******'
  PARAMS: '--verbosity info --exclude-device-files --exclude-other-filesystems --exclude-if-present .duplicity-ignore --exclude-filelist /etc/duplicity/exclude.list'
  INCLUDES: '/root /home /var/www /var/backup'

GPG-Verschlüsselung

GPG-Verschlüsselung wird von dieser Rolle nicht unterstützt. Sie müssen sie manuell installieren.

GPG-Schlüsselpaar generieren

Um GPG-Schlüssel zu generieren, verwenden Sie den folgenden Befehl:

gpg --batch --gen-key <<EOF
%echo Generiere einen GPG-Schlüssel
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: Duplicity Backup
Name-Comment: Verwendet zur Backup-Verschlüsselung
Name-Email: duplicity@localhost
Expire-Date: 0
Passphrase: DiesSollteIhrPersönlichesEinzigartigesPasswortSein
%commit
%echo Fertig
EOF

Öffentlichen Schlüssel exportieren

gpg --output FB37DF3B.public.asc --armor --export FB37DF3B

Eigentümervertrauen exportieren

gpg --export-ownertrust > ownertrust.txt

Privaten Schlüssel exportieren

gpg --output FB37DF3B.private.asc --armor --export-secret-key FB37DF3B

Bekannte Hosts

Um Hosts als bekannte Hosts zu markieren

duplicity_known_hosts:
  - host: 'ftp.example.com'
    key: 'ftp.example.com ssh-rsa AAAAB3NzaC1yc2[...]+MPw=='
    state: 'present'

Wenn Sie sicher sind, dass Ihr System es unterstützt, können Sie auch ecdsa und ed25519 Schlüssel verwenden.

ssh-keyscan -t ecdsa ftp.example.com
ssh-keyscan -t ed25519 ftp.example.com

Duptools

Duptools ist ein Hilfsskript zur Verwaltung von Backups. Es wird standardmäßig installiert, kann aber mit duplicity_install_duptools: false deaktiviert werden.

Duptools ausführen

Geben Sie einfach duptools in die Kommandozeile ein, um die verfügbaren Optionen anzuzeigen:

    duptools - verwaltet Duplicity-Backups

    VERWENDUNG:

    duptools backup
    duptools list
    duptools status
    duptools restore datei [zeit] ziel
    duptools remove [zeit]

    [zeit]
    a) jetzt
    b) 2002-01-25T07:00:00+02:00
    c) D=Tage, W=Wochen, M=Monate, Y=Jahre, h=Stunden, m=Minuten, s=Sekunden

Unterstützte Betriebssysteme

  • Debian 9 (Stretch)
  • Debian 8 (Jessie)
  • Ubuntu 18.04 (Bionic Beaver)
  • Ubuntu 16.04 (Xenial Xerus)

Erforderliche Ansible-Version

Ansible 2.5+

Lizenz

MIT Lizenz

Autor Informationen

TODO

  • Beheben Sie die Neuinstallation und die Installation einer anderen Version. Derzeit wird die Datei /usr/local/bin/duplicity nicht überschrieben und pip deinstalliert nicht duplicity.
Über das Projekt

Installs duplicity from source and handles backup tasks on Debian/Ubuntu linux servers.

Installieren
ansible-galaxy install tschifftner.duplicity
GitHub Repository
Lizenz
mit
Downloads
90
Besitzer
Kubernetes Software Architekt, Magento Certified Developer und Full-Stack Entwickler