xilonz.trellis_backup

rôle de sauvegarde trellis

Ce rôle est conçu pour être utilisé avec Trellis.

Il permet de mettre en place des sauvegardes automatisées en utilisant duply.

Il va :

  • installer duplicity et duply
  • pour chaque wordpress_site configuré, installer deux profils duply
    • un pour la base de données
    • un pour les téléchargements

Il ne sauvegarde pas le code du site web. Si vous avez besoin de restaurer, vous devez d'abord déployer votre site sur un nouveau serveur, puis restaurer votre base de données et vos téléchargements.

Commencer

Ajoutez le rôle et ses dépendances au fichier galaxy.yml de Trellis :

- name: backup
  src: xilonz.trellis_backup
  version: 2.1.7

Exécutez ansible-galaxy install -r galaxy.yml pour installer les nouveaux rôles.

Ensuite, ajoutez les rôles au server.yml :

roles:
  ... autres rôles Trellis ...
  - { role: backup, tags: [backup] }

Variables du rôle

Le rôle lira les données du dictionnaire wordpress_sites dans Trellis.

Exemple :

wordpress_sites:
  example.com:
    site_hosts:
      - canonical: example.com
        redirects:
          - www.example.com
    local_path: ../site # chemin vers le répertoire local de Bedrock
    repo: [email protected]:example/example.com.git # remplacez par l'URL de votre dépôt Git
    repo_subtree_path: site # chemin relatif vers votre répertoire Bedrock/WP dans votre dépôt
    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 # n'importe quel emplacement supporté par duplicity
+     schedule: '0 4 * * *' # temps de cron pour les sauvegardes (changez cette valeur)
+     purge: false # passez à true pour activer la suppression automatique des anciennes sauvegardes
+     max_age: 1M # période de temps pour garder les anciennes sauvegardes, utilisée pour la commande "purge".
+     full_max_age: 1M # force une sauvegarde complète si la dernière sauvegarde complète atteint cet âge.
+     max_full_backups: 1 # nombre de sauvegardes complètes à garder
+     post_actions: # optionnel
+     - "curl -L http://votre-endpoint-personnalisé" # commandes à exécuter après la sauvegarde

Vous pouvez mettre enabled: true et auto: false pour installer les profils duply sans programmer réellement les sauvegardes. Ainsi, vous pouvez par exemple restaurer votre base de données de production sur une instance de staging. Vous aurez les mêmes profils duply en staging et en production, mais seul le serveur de production créera réellement les sauvegardes.

Lisez tous les formats d'URL de duplicity (et cibles potentielles).

vault.yml

Ajoutez vos identifiants pour la cible de sauvegarde dans vault.yml (selon votre cible, cela peut être des clés S3, des identifiants FTP, ou rien si vous sauvegardez localement...). Vous pouvez également intégrer vos identifiants dans l'URL de la cible, mais utiliser la méthode vault.yml est plus sûr.

example.com:
  env:
    backup_target_user: user
    backup_target_pass: password

Provisionnement du serveur

Exécutez trellis provision --tags backup environment ou ansible-playbook server.yml -e env=environment --tags backup pour exécuter ce rôle.

Restauration

Une fois les profils installés, vous pouvez sauvegarder et restaurer facilement depuis le serveur. website_name est le nom de votre site dans wordpress_sites.yml, avec des points remplacés par des soulignés (example_com). Vous pouvez utiliser ls /etc/duply si vous n'êtes pas sûr des noms de vos profils duply.

sudo duply website_name_database restore
sudo duply website_name_uploads restore

Changements dans 2.0

  • la dépendance paramiko a été supprimée
  • vous n'avez plus besoin de lister le rôle Stouts.backup dans le playbook server.yml, car il est importé dans les tâches
  • vous avez besoin d'une version récente de Trellis car le rôle utilise le plugin Mysql auth_socket pour se connecter à la base de données

Problèmes connus avec le support SCP

Pour utiliser une cible SCP, vous devez avoir paramiko installé sur votre serveur.

L'installation automatique de paramiko a été supprimée dans 2.0. Si vous en avez besoin, vous devez le faire manuellement ou en l'ajoutant aux tâches de Trellis. Cependant, il existe un problème connu où paramiko plante sur le paramètre SendEnv dans le ssh_config créé par Trellis.

Support S3

Il y a un problème connu lors du téléchargement vers des buckets S3 qui n'acceptent que les signatures V4. Pour réussir le téléchargement, vous devez ajouter un peu à la clé backup: dans wordpress_sites.yml :

wordpress_sites:
  example.com:
    backup:
      ...
+     params:
+       - 'export S3_USE_SIGV4="True"'

Licence

MIT

Auteurs

Ce rôle a été principalement développé par Jill Royer, et est actuellement maintenu par Arjan Steenbergen.

Ce rôle nécessite le rôle ansible-backup de La France insoumise. Cela devrait être installé automatiquement par ansible.

À propos du projet

Install automated backups on Trellis using duply

Installer
ansible-galaxy install xilonz.trellis_backup
Licence
Unknown
Téléchargements
2.2k
Propriétaire