paulfantom.restic
Rol de Ansible: restic
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.
Fast, secure, efficient backup program
ansible-galaxy install paulfantom.restic