xilonz.trellis_backup
trellis-backup-role
Diese Rolle ist dafür gedacht, mit Trellis verwendet zu werden.
Sie ermöglicht die Einrichtung automatisierter Backups mit duply.
Sie wird:
- duplicity und duply installieren
- für jede konfigurierte
wordpress_site
zwei duply-Profile installieren- eines für die Datenbank
- eines für die Uploads
Es sichert nicht den Code der Webseite. Wenn du eine Wiederherstellung benötigst, musst du zuerst deine Webseite auf einem neuen Server bereitstellen und dann deine Datenbank und Uploads wiederherstellen.
Erste Schritte
Füge die Rolle und ihre Abhängigkeiten zur galaxy.yml
-Datei von Trellis hinzu:
- name: backup
src: xilonz.trellis_backup
version: 2.1.7
Führe ansible-galaxy install -r galaxy.yml
aus, um die neuen Rollen zu installieren.
Füge dann die Rollen zur server.yml
hinzu:
roles:
... andere Trellis-Rollen ...
- { role: backup, tags: [backup] }
Rollen-Variablen
Die Rolle liest aus dem wordpress_sites
-Dictionary in Trellis.
Beispiel:
wordpress_sites:
example.com:
site_hosts:
- canonical: example.com
redirects:
- www.example.com
local_path: ../site # Pfad zum lokalen Bedrock-Verzeichnis (relativ zum Ansible-Stammverzeichnis)
repo: [email protected]:example/example.com.git # ersetze mit deiner Git-Repo-URL
repo_subtree_path: site # relativer Pfad zu deinem Bedrock/WP-Verzeichnis in deinem Repo
branch: master
multisite:
enabled: false
ssl:
enabled: false
provider: letsencrypt
cache:
enabled: false
+ backup:
+ enabled: true
+ auto: true
+ target: scp://[email protected]/example.com_backups # jeder von duplicity unterstützte Ort
+ schedule: '0 4 * * *' # cron-Zeit für Backups (ändere diesen Wert)
+ purge: false # auf true setzen, um die automatische Löschung alter Backups zu aktivieren
+ max_age: 1M # Zeitraum für alte Backups, die behalten werden sollen, wird für den "purge"-Befehl verwendet.
+ full_max_age: 1M # erzwingt ein vollständiges Backup, wenn das letzte vollständige Backup dieses Alter erreicht.
+ max_full_backups: 1 # Anzahl der vollständigen Backups, die behalten werden sollen
+ post_actions: # optional
+ - "curl -L http://your-custom-endpoint" # Befehle, die nach Abschluss des Backups ausgeführt werden sollen
Du kannst enabled: true
und auto: false
setzen, um die duply-Profile zu installieren, aber keine Backups zu planen. So kannst du beispielsweise deine Produktionsdatenbank auf Staging wiederherstellen. Du hast die gleichen duply-Profile in Staging und Produktion, aber nur der Produktionsserver erstellt tatsächlich die Backups.
Lese alle duplicity-URL-Formate (und mögliche Ziele).
vault.yml
Füge deine Backup-Zielanmeldeinformationen zu vault.yml
hinzu (abhängig von deinem Ziel können das S3-Schlüssel, FTP-Anmeldeinformationen oder nichts sein, wenn du lokal sicherst...). Du kannst auch deine Anmeldeinformationen in die Ziel-URL einbetten, aber die Verwendung der vault.yml
-Methode ist sicherer.
example.com:
env:
backup_target_user: user
backup_target_pass: password
Bereitstellung des Servers
Führe trellis provision --tags backup environment
oder ansible-playbook server.yml -e env=environment --tags backup
aus, um diese Rolle auszuführen.
Wiederherstellung
Sobald die Profile installiert sind, kannst du einfach von dem Server aus Backups erstellen und wiederherstellen. website_name
ist der Name deiner Webseite in wordpress_sites.yml
, wobei Punkte durch Unterstriche ersetzt werden (example_com
). Du kannst ls /etc/duply
verwenden, wenn du dir über den Namen deiner duply-Profile nicht sicher bist.
sudo duply website_name_database restore
sudo duply website_name_uploads restore
Änderungen in 2.0
- Die Abhängigkeit zu paramiko wurde entfernt.
- Du musst die Rolle
Stouts.backup
nicht mehr imserver.yml
-Playbook auflisten, da sie in den Aufgaben importiert wird. - Du benötigst eine aktuelle Version von Trellis, da die Rolle das Mysql
auth_socket
-Plugin verwendet, um eine Verbindung zur Datenbank herzustellen.
Bekannte Probleme mit SCP-Unterstützung
Um das SCP-Ziel zu verwenden, musst du paramiko auf deinem Server installiert haben.
Die automatische Installation von paramiko wurde in Version 2.0 entfernt. Wenn du es benötigst, solltest du es manuell installieren oder es zu den Trellis-Aufgaben hinzufügen. Es gibt jedoch ein bekanntes Problem, bei dem paramiko bei der SendEnv
-Einstellung in der von Trellis erstellten ssh_config
abstürzt.
S3-Unterstützung
Es gibt ein bekanntes Problem beim Hochladen in S3-Buckets, die nur V4-Signaturen akzeptieren. Um erfolgreich hochzuladen, musst du ein wenig zu dem backup:
-Schlüssel deiner wordpress_sites.yml
hinzufügen:
wordpress_sites:
example.com:
backup:
...
+ params:
+ - 'export S3_USE_SIGV4="True"'
Lizenz
MIT
Autoren
Diese Rolle wurde hauptsächlich von Jill Royer entwickelt und wird derzeit von Arjan Steenbergen gewartet.
Diese Rolle erfordert die Ansible-Backup-Rolle von La France insoumise. Diese sollte automatisch von Ansible installiert werden.
Install automated backups on Trellis using duply
ansible-galaxy install xilonz.trellis_backup