Ansible remplace-t-il un outil CI comme Hudson / Jenkins?

Récemment, dans notre entreprise, nous avons décidé d’utiliser Ansible pour le déploiement et l’continuous integration. Mais lorsque j’ai commencé à utiliser Ansible, je n’ai pas trouvé de modules pour la création de projets Java avec Maven, ni de modules pour l’exécution de tests JUnit ou de tests JMeter.

Donc, je suis dans un état douteux: il se peut que j’utilise Ansible dans le mauvais sens.

Quand j’ai regardé Jenkins, il peut faire des choses comme construire, exécuter des tests, déployer. Ce qui manque à Hudson, c’est de créer / supprimer une instance dans des environnements de cloud comme AWS.

Donc, en général, à quelles fins devons-nous utiliser Ansible / Jenkins? Pour CI, dois-je utiliser une combinaison d’Ansible et de Jenkins?

S’il vous plaît jeter un peu de lumière sur l’utilisation correcte d’Ansible.

Ansible est juste une “boucle SSH glorifiée”. CI est non seulement le logiciel en cours d’exécution, mais également le processus complet de gestion du succès et de l’échec, de la notification et de la manière dont la modification est intégrée au contrôle de version cible.

Si nous nous concentrons uniquement sur le logiciel, CI est un planificateur réactif déclenché par des modifications de code et déclenchant une séquence typique de “étapes” de build-validate-release-deploy.

Donc, en ce qui concerne les logiciels, Ansible sans “sucre” supplémentaire est juste une boîte à outils pour exécuter les choses, qui peuvent être ces étapes, mais ce n’est pas CI. L’Ansible (sans tour) manque totalement de cette nature réactive.

Si vous voulez épouser Ansible avec CI, vous le pouvez.

Ansible Tower est un ordonnanceur très orienté Ansible, mais si vous avez besoin d’un logiciel CI, je pense que vous n’en avez pas nécessairement besoin. Toute application CI capable d’exécuter un script shell serait capable de lancer des playbooks Ansible.

Pourtant, contrairement à Ansible tower, les outils de CI sont capables d’afficher les rapports de test de tous les frameworks de test, les notifications de déclenchement, etc.

Ansible Tower peut avoir un sens dans un environnement complexe où de nombreux groupes touchent le code Ansible … La vérité est que je n’ai pas vu de véritable raison de payer. Mais si un responsable a aimé l’interface Web, rien ne résiste à la logique «mais d’autres l’utilisent».

Je soupçonne que le concept de la tour Ansible était en réponse à l’entreprise de marionnettes.

🙂