xilonz.trellis_backup
rol-de-respaldo-trellis
Este rol está destinado a ser utilizado con Trellis.
Permite configurar copias de seguridad automatizadas usando duply.
Hará lo siguiente:
- instalar duplicity y duply
- para cada
wordpress_site
configurado, instalará dos perfiles de duply- uno para la base de datos
- uno para las cargas
No hace una copia de seguridad del código del sitio web. Si necesitas restaurar, primero debes desplegar tu sitio web en un nuevo servidor y luego restaurar tu base de datos y cargas.
Comenzar
Agrega el rol y sus dependencias al archivo galaxy.yml
de Trellis:
- name: backup
src: xilonz.trellis_backup
version: 2.1.7
Ejecuta ansible-galaxy install -r galaxy.yml
para instalar los nuevos roles.
Luego, agrega los roles al server.yml
:
roles:
... otros roles de Trellis ...
- { role: backup, tags: [backup] }
Variables del rol
El rol leerá del diccionario wordpress_sites
en Trellis.
Ejemplo:
wordpress_sites:
example.com:
site_hosts:
- canonical: example.com
redirects:
- www.example.com
local_path: ../site # ruta que apunta al directorio local de Bedrock (relativa a la raíz de Ansible)
repo: [email protected]:example/example.com.git # reemplaza con la URL de tu repositorio Git
repo_subtree_path: site # ruta relativa a tu directorio Bedrock/WP en tu repositorio
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 # cualquier ubicación soportada por duplicity
+ schedule: '0 4 * * *' # cron para las copias de seguridad (cambia este valor)
+ purge: false # cambia a true para habilitar la purga automática de copias de seguridad antiguas
+ max_age: 1M # período de tiempo para las copias de seguridad antiguas a mantener, usado para el comando "purge".
+ full_max_age: 1M # fuerza una copia de seguridad completa si la última copia completa alcanza esta edad.
+ max_full_backups: 1 # número de copias de seguridad completas a mantener
+ post_actions: # opcional
+ - "curl -L http://tu-endpoint-personalizado" # comandos a ejecutar después de completar la copia de seguridad
Puedes establecer enabled: true
y auto: false
para instalar los perfiles de duply
pero no programar realmente las copias de seguridad. De esta manera, puedes, por ejemplo, restaurar tu
base de datos de producción en staging. Tendrás los mismos perfiles de duply en staging
y producción, pero solo el servidor de producción creará realmente las copias de seguridad.
Lee todos los formatos de URL de duplicity (y posibles objetivos).
vault.yml
Agrega tus credenciales del objetivo de respaldo a vault.yml
(dependiendo de tu objetivo, puede ser claves de S3, credenciales de FTP, o nada si haces copias de seguridad localmente...). También puedes incrustar tu credencial en la URL del objetivo, pero usar el método vault.yml
es más seguro.
example.com:
env:
backup_target_user: usuario
backup_target_pass: contraseña
Provisión del servidor
Ejecuta trellis provision --tags backup environment
o ansible-playbook server.yml -e env=environment --tags backup
para usar este rol.
Restaurar
Una vez que los perfiles estén instalados, puedes hacer copias de seguridad y restaurar fácilmente desde el servidor. website_name
es el nombre de tu sitio web en wordpress_sites.yml
con puntos reemplazados por guiones bajos (example_com
). Puedes usar ls /etc/duply
si no estás seguro de los nombres de tus perfiles de duply.
sudo duply nombre_del_sitio_base_de_datos restore
sudo duply nombre_del_sitio_cargas restore
Cambios en 2.0
- se ha eliminado la dependencia de paramiko
- ya no es necesario listar el rol
Stouts.backup
en el playbookserver.yml
, ya que se importa en las tareas - necesitas una versión reciente de Trellis porque el rol utiliza el plugin
auth_socket
de Mysql para conectarse a la base de datos
Problemas conocidos de soporte SCP
Para usar el objetivo SCP, necesitas tener paramiko instalado en tu servidor.
La instalación automática de paramiko fue eliminada en 2.0. Si lo necesitas, debes hacerlo manualmente o añadirlo a las tareas de trellis. Sin embargo, hay un problema conocido donde paramiko falla por la configuración de SendEnv
en el ssh_config
creado por Trellis.
Soporte S3
Hay un problema conocido al subir a buckets de S3 que solo aceptan firmas V4. Para subir con éxito, necesitarás agregar un poco a tu clave backup:
en wordpress_sites.yml
:
wordpress_sites:
example.com:
backup:
...
+ params:
+ - 'export S3_USE_SIGV4="True"'
Licencia
MIT
Autores
Este rol fue desarrollado principalmente por Jill Royer, y actualmente es mantenido por Arjan Steenbergen.
Este rol requiere el rol ansible-backup de La France insoumise. Esto debe ser instalado automáticamente por ansible.
Install automated backups on Trellis using duply
ansible-galaxy install xilonz.trellis_backup