Molecule : l’outil créateur de scripts Ansible

Maintenant que je vous ai présenté Ansible Galaxy– et que vous savez comment l’utiliser – il est temps de créer vous-même vos scripts Ansible pour les proposer à la communauté. Pour ma part, j’ai ressenti le besoin de créer un script qui puisse m’installer n’importe quelle version de Fail2ban. En bonus, je souhaite rendre simple la configuration de cet outil. Pour ceux qui ne connaissent pas Fail2ban, j’ai publié plusieurs articles sur le sujet. Vous pouvez les retrouver en cliquant sur les liens précédents. Je vous propose de garder cet idée de projet comme fil conducteur dans ce guide.

Qu’est-ce que Molecule ?

Pour créer un script propre et qui inspire confiance, il existe donc un outil super sympa qui se nomme Molecule. C’est le meilleur ami des DevOps qui ont besoin d’automatiser de nombreux processus avec Ansible. La plupart du temps, quand on écrit des scripts Ansible depuis le début (from scratch), il arrive qu’on ne respecte pas la norme ou qu’on écrive des erreurs par inattention. Molecule met en place une structure de fichiers/dossiers solide pour démarrer votre projet. Notamment le fichier de configuration, l’architecture de tests…

Qui produit Molecule ?

Molecule est gratuit et Open Source. A l’origine, il a été développé par un certain Retr0h. Aujourd’hui cet outil est maintenu par Red Hat et considéré comme une partie d’Ansible. C’est la raison pour laquelle je vous encourage vivement à l’utiliser. Le code est disponible sur GitHub. La documentation est disponible ici.

Quelle est la structure proposée par Molécule ?

Lorsqu’on initialise un rôle avec Molecule, on obtient cette arborescence. Tous les fichiers facilement modifiables sont au format YAML :

  • defaults/main.yml : contient les variables de configuration par défaut.
  • handlers/main.yml : permet de lancer des opérations lorsqu’un fichier de configuration est modifié. Par exemple : redémarrer le serveur apache si le fichier de configuration a été modifié.
  • meta/main.yml : permet de renseigner de la méta-donnée afin de décrire votre projet si celui-ci est mis en ligne sur Ansible Galaxy.
  • molecule/default/playbook.yml : liste des tâches de tests, par exemple : vérifier que tel fichier a bien été téléchargé et qu’il est présent dans tel répertoire.
  • molecule/default/molecule.yml : liste les tâches permettant de lancer les tests avec Docker, et de vérifier la syntaxe, les normes (etc…) du code Ansible écrit.
  • tasks/main.yml : définit les tâches à effectuer pour ce projet, dans notre cas : comment installer Fail2Ban.
  • vars/main.yml : contient les variables modifiées par celui qui veut utiliser le script. Les variables inscrites surchargent celles présentes dans defaults/main.yml.
  • README.md : c’est le fichier README classique écrit en Markdown que l’on peut retrouver en page d’accueil du projet, s’il est uploadé sur GitHub et sur Ansible Galaxy.

Conclusion

A présent, vous savez comment fonctionne Molecule et quelles sont les possibilités qui s’offrent à vous. Je vous propose de consulter mon projet sur GitHub. Si Molecule vous intéresse, lisez cet article : Installation de Molecule et d’Ansible. Vous saurez comment installer et paramétrer votre ordinateur pour utiliser ce formidable outil. Si vous avez des questions concernant l’architecture de projet de Molecule, les commentaires sont à votre disposition.

Articles Similaires

GitHub Actions – Construire, tester et déployer sans effort (CI/CD)

Filtres mails : automatisez certaines actions et simplifiez vous la vie

PHP CodeSniffer – l’outil ultime pour valider et corriger votre code PHP