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 playbookserver.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.
Install automated backups on Trellis using duply
ansible-galaxy install xilonz.trellis_backup