paulfantom.restic
Rôle Ansible : restic
IMPORTANT - Projet archivé
Le projet est archivé en raison de mon manque d'intérêt pour sa maintenance (je ne l'utilise plus). Je le réactiverai avec plaisir si quelqu'un est intéressé à le maintenir. Si vous êtes cette personne, écrivez-moi un email à paulfantom@gmail.com.
Description
Déployez restic - un programme de sauvegarde rapide, sécurisé et efficace.
Exigences
- Ansible > 2.2
- bzip2 installé sur la machine de déploiement (celle où Ansible est installé)
Variables de rôle
Toutes les variables qui peuvent être remplacées sont stockées dans le fichier defaults/main.yml ainsi que dans le tableau ci-dessous.
Nom | Valeur par défaut | Description |
---|---|---|
restic_version |
0.9.6 | version du package restic. Accepte également 'latest' comme paramètre. |
restic_user |
"root" | utilisateur système pour exécuter restic |
restic_group |
"root" | groupe système pour exécuter restic |
restic_shell |
"/bin/false" | le shell pour l'utilisateur restic, changez ceci si vous souhaitez pouvoir s'y connecter |
restic_install_path |
"/usr/local/bin" | répertoire où le binaire restic sera installé |
restic_cron_mailto |
restic_user | à qui envoyer les résultats des tâches cron de restic, mettre à "" pour ne pas envoyer de mail |
restic_cron_stdout_file |
null | fichier pour enregistrer la sortie de restic, null signifie inclure dans le mail, utiliser /dev/null pour ignorer |
restic_cron_stderr_file |
null | fichier pour enregistrer les erreurs de restic, null signifie inclure dans le mail, utiliser /dev/null pour ignorer |
restic_sudo_command_whitelist |
[] | liste blanche des commandes que restic est autorisé à exécuter avec sudo |
restic_repos |
[] | configuration des dépôts et des tâches cron de restic. Plus d'infos dans defaults/main.yml |
Sécurité
Pour assurer une haute sécurité, ce rôle peut permettre à restic d'être exécuté en tant qu'utilisateur différent de root tout en permettant un accès en lecture seule aux fichiers. Cela est mis en œuvre par le biais de la PR#1483 du dépôt restic.
Si vous devez exécuter certains outils en tant qu'autre utilisateur, assurez-vous de les lister dans restic_sudo_command_whitelist
comme suit :
restic_sudo_command_whitelist:
- command: /usr/bin/some_backup_related_command_that_needs_sudo
runas: root
Ensuite, dans votre commande de sauvegarde réelle, ajoutez la commande comme sudo -u root /usr/bin/some_backup_related_command_that_needs_sudo
.
Aides
Ce rôle installe également des scripts d'aide dans restic_install_path
. Ces scripts portent le nom de votre dépôt et garantiront que les variables d'environnement sont correctes pour ce dépôt.
Par exemple, si vous avez un dépôt restic nommé testrepo
, vous pourriez utiliser la commande restic-testrepo
, qui exécutera restic
avec les bonnes variables d'environnement pour manipuler ce dépôt.
Exemple
Playbook
Utilisez-le dans un playbook comme suit :
- hosts: all
roles:
- paulfantom.restic
Tests Locaux
La meilleure façon de tester localement le rôle est d'utiliser Docker et molecule (v2.x). Vous devrez installer Docker sur votre système. Consultez la section "Démarrer" pour un package Docker adapté à votre système. Tous les packages dont vous avez besoin peuvent être spécifiés en une seule ligne :
pip install ansible 'ansible-lint>=3.4.15' 'molecule>2.13.0' docker 'testinfra>=1.7.0' jmespath
Cela devrait être similaire à ce qui est listé dans le fichier .travis.yml
dans la section install
.
Après avoir installé la suite de tests, vous pouvez exécuter le test en lançant
molecule test --all
Pour plus d'informations sur molecule, consultez leur documentation.
Travis CI
Combiner molecule et travis CI permet de tester comment de nouvelles PR se comporteront avec plusieurs versions d'ansible et systèmes d'exploitation. Cela permet également de créer des scénarios de test pour différentes configurations de rôle. Par conséquent, la matrice de test est assez grande et prend plus de temps que les tests locaux, alors veuillez être patient.
Contribuer
Voir les lignes directrices pour les contributeurs.
Licence
Ce projet est sous licence MIT. Consultez LICENSE pour plus de détails.
Fast, secure, efficient backup program
ansible-galaxy install paulfantom.restic