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 playbook server.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.

Acerca del proyecto

Install automated backups on Trellis using duply

Instalar
ansible-galaxy install xilonz.trellis_backup
Licencia
Unknown
Descargas
2.2k
Propietario