Molecule, testeur complet de vos besoins Ansibles

Par Thibault Lecoq & Quentin Le Baron, organisé par Café Devops (via Meetup). Archive sur Café Devops.

Prérequis : Avoir manipulé Ansible et les rôle Ansible.

Le sujet de cette session sera de présenter dans une première partie l'outil Molecule, pourquoi et comment l'utiliser pour tester du code ansible (rôles, playbooks, modules, filters).

Une démonstration de l'usage de molecule sur un role ansible viendra cloturer cette première partie.

La deuxième partie sera axés sur notre retour d'expérience de comment nous avons intégré molecule dans l'écosystème du projet linky sur lequel nous travaillons aujourd'hui.

Nous verrons pourquoi nous avons choisi d'intégrer molecule, les avantages que cela apporte et en quoi est-ce un investissement rentable. S'en suivra une présentation de l'architecture choisi ainsi qu'une explication détaillé de sa mise en place de A à Z. Nous terminerons par une démonstration présentant point par point comment mettre en place cette architecure et intégrer dans celle-ci molecule à un rôle ansible.

1er partie Molecule - Qu'est ce que c'est et pourquoi l'utiliser ? - Comment cela fonctionne et comment l'utiliser - Demonstration sur un role ansible

2eme partie Intégration continue de Molecule - Contexte : explication du besoin - Présentation de l'architecture : Jenkins + Gitea + AWS - Explication détaillé du fonctionnement (pipeline, webhook ...) - Demonstration point par point de l'intégration de molecule

Thibault Lecoq & Quentin Le Baron Intégrateur DevOps sur l'un des projets Linky.


Notes personnelles:

  • outils python
  • monte un environnement temporaire dédié au test
    • utilisable en local comme sur infra
  • tout type de test

Comment ça marche ?

  • Linux
  • internet
  • ansible==2.8
  • molecule==2.20
  • plugin : docker CE / AWS EC2 / OpenStack / ?
  • test (python) avec Testinfra

Marmo (bientôt open-sourced sur le Github de Thibault Lecoq)

  • ajoute un scenario molecule dans le rorle ansible a tester
  • structure alternative possible : lisibilité & DRY

Tous les détails dans le support de présentatiion