paulfantom.restic

logo de restic

Rol de Ansible: restic

Estado de construcción Licencia Rol de Ansible Etiqueta de GitHub

IMPORTANTE - Proyecto archivado

El proyecto está archivado debido a mi falta de interés en mantenerlo (ya no lo uso). Estoy dispuesto a desarchivarlo si alguien está interesado en mantenerlo. Si eres esa persona, escríbeme un correo a paulfantom@gmail.com.

Descripción

Despliega restic - un programa de respaldo rápido, seguro y eficiente.

Requisitos

  • Ansible > 2.2
  • bzip2 instalado en la máquina del desplegador (la misma donde está instalado Ansible)

Variables del rol

Todas las variables que se pueden sobrescribir están almacenadas en el archivo defaults/main.yml así como en la tabla a continuación.

Nombre Valor Predeterminado Descripción
restic_version 0.9.6 versión del paquete restic. También acepta latest como parámetro.
restic_user "root" usuario del sistema para ejecutar restic
restic_group "root" grupo del sistema para ejecutar restic
restic_shell "/bin/false" la shell para el usuario restic, cámbiala si deseas poder acceder a él
restic_install_path "/usr/local/bin" directorio donde se instalará el binario restic
restic_cron_mailto restic_user a quién enviar los resultados de los trabajos cron de restic, configúralo en "" para no enviar correos
restic_cron_stdout_file null archivo para guardar la salida de restic, null significa incluir en el correo, usa /dev/null para descartar
restic_cron_stderr_file null archivo para guardar los errores de restic, null significa incluir en el correo, usa /dev/null para descartar
restic_sudo_command_whitelist [] lista blanca de comandos que se permite ejecutar restic con sudo
restic_repos [] configuración de repositorios de restic y trabajos cron. Más en defaults/main.yml

Seguridad

Para garantizar una alta seguridad, este rol puede permitir que restic se ejecute como un usuario diferente a root y aún así permitir acceso solo de lectura a los archivos. Esto se implementa siguiendo PR#1483 del repositorio de restic.

Si necesitas ejecutar ciertas herramientas como otro usuario, asegúrate de listarlas en restic_sudo_command_whitelist de la siguiente manera:

restic_sudo_command_whitelist:
   - command: /usr/bin/some_backup_related_command_that_needs_sudo
     runas: root

Luego, en tu comando de respaldo real, agrega el comando como sudo -u root /usr/bin/some_backup_related_command_that_needs_sudo.

Ayudantes

Este rol también instala scripts auxiliares en restic_install_path. Estos scripts están nombrados según tu repositorio y asegurarán que las variables de entorno sean correctas para ese repositorio.

Por ejemplo, si tienes un repositorio restic llamado testrepo, podrías usar el comando restic-testrepo, que ejecutará restic con las variables de entorno correctas para manipular ese repositorio.

Ejemplo

Playbook

Úsalo en un playbook de la siguiente manera:

- hosts: all
  roles:
    - paulfantom.restic

Pruebas Locales

La forma preferida de probar localmente el rol es usar Docker y molecule (v2.x). Tendrás que instalar Docker en tu sistema. Consulta "Get started" para un paquete de Docker adecuado para tu sistema. Todos los paquetes que necesitas se pueden especificar en una línea:

pip install ansible 'ansible-lint>=3.4.15' 'molecule>2.13.0' docker 'testinfra>=1.7.0' jmespath

Esto debería ser similar a lo que se encuentra en el archivo .travis.yml en la sección de install. Después de instalar el conjunto de pruebas, puedes ejecutar la prueba con:

molecule test --all

Para más información sobre molecule, visita su documentación.

Travis CI

Combinar molecule y Travis CI permite probar cómo se comportarán nuevos PRs al usarse con múltiples versiones de Ansible y múltiples sistemas operativos. Esto también permite crear escenarios de prueba para diferentes configuraciones de roles. Como resultado, la matriz de pruebas es bastante grande y toma más tiempo que las pruebas locales, así que por favor ten paciencia.

Contribuciones

Consulta las directrices para colaboradores.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta LICENSE para más detalles.

Acerca del proyecto

Fast, secure, efficient backup program

Instalar
ansible-galaxy install paulfantom.restic
Licencia
mit
Descargas
55.6k
Propietario
SRE / SWE specializing in observability. tea addict :tea: