Pourquoi choisir Ansible pour l’automatisation

26-06-2018 / Marc Pare

Ansible est un outil de logiciel libre qui sert à automatiser la gestion de la configuration, du déploiement et de l’orchestration. Son approche sans agent est conçue dans le but de simplifier le processus de déploiement de MV tout en permettant un meilleur contrôle et plus d’agilité dans leur configuration. Bien que Ansible peut être utilisé pour déployer et maintenir, grâce à des modèles, les configurations de serveur normalisées, il peut aussi être modifié pour appliquer des configurations personnalisées aux machines individuelles afin de répondre à des exigences précises. Il est réceptif aux changements de configuration actifs et utilise une connectivité SSH standard pour exécuter l’automatisation des charges de travail, réduisant ainsi la surcharge de gestion et facilitant l’intégration d’instances dans une vaste gamme d’environnements. Ansible peut automatiser le déploiement et les configurations d’instances éphémères et les supprimer lorsqu’elles ne sont plus nécessaires. Il peut effectuer une mise à l’échelle automatique des applications modernes qui évoluent horizontalement.

Facilité – Ansible est reconnu pour la simplicité de son langage. Écrit dans le langage lisible par l’humain YAML, sa petite courbe d’apprentissage échappe à la complexité et aux connaissances exclusives associées à Chef, à Puppet et à SaltStack. Ansible est plus facile d’accès que les autres options et ses instructions s’écrivent et se comprennent plus aisément pour une organisation.

Communauté – Lancé en 2013 et acquis par Red Hat en 2015, Ansible reçoit énormément de soutien de la part de la communauté technologique. Avec plus d’un quart de millions de téléchargements, il est actuellement l’outil d’automatisation de logiciel libre le plus populaire sur GitHub. La quantité d’adoption d’Ansible en tant qu’outil d’orchestration est suffisante pour qu’il obtienne la reconnaissance populaire ; aussi, la communauté inclut d’autres fournisseurs qui contribuent à Galaxy. Dans le futur, nous nous attendons à ce qu’il maintienne son élan.

Souplesse – La facilité d’utilisation d’Ansible, ainsi que la communauté ont mené à un ensemble de playbooks qui couvrent une vaste gamme de cas d’utilisation. Bien que certains aspects comme la collection d’information pour les rapports peuvent être relativement faibles, si on les compare à d’autres outils, Ansible est beaucoup plus polyvalent. Il peut automatiser la configuration à plusieurs différents niveaux (systèmes d’exploitation, composantes d’application), et peut être appliqué à différents équipements (serveur, stockage, réseau) ou infrastructures (traditionnelle, virtuelle, infonuagique). Il est particulièrement utile dans la gestion d’applications modernes qui évoluent horizontalement.

Flexibilité – L’ensemble officiel de playbooks soutenus de Ansible est très utile pour les charges de travail de production. Il est enrichi par le soutien de Galaxy hub de Ansible et par les contributions actives d’une communauté croissante. Ansible offre une façon détaillée pour écrire vos propres modules en utilisant des langages bien connus tels que Python. En tout et pour tout, l’étendue des playbooks vous donne la flexibilité de trouver ou de créer des playbooks Ansible qui répondent à votre cas d’utilisation particulier.

Contrôle – Les agents configurent automatiquement les MV selon les instructions venant du plan de contrôle, assurant la constance à travers tout le cycle de vie d’une MV qui peut, à certains moments, outrepasser les exigences d’instances précises. Ansible étant sans agent, il a la capacité de comparer la configuration actuelle de l’instance de la MV avec l’état souhaité et exécuter les modules nécessaires pour amener l’instance vers l’état souhaité. Ses mécanismes d’inventaire structurés vous donnent un meilleur contrôle sur les instances individuelles que les approches basées sur les agents.

Intégration – Ansible n’est pas une solution prescriptive, sa polyvalence et sa souplesse sont enrichies par sa capacité d’adaptation à plusieurs environnements. Il s’intègre bien à Terraform comme outil de provisionnement, mais il a aussi des modules d’extension précis qui lui permettent de fonctionner avec des systèmes élargis de flux de travail comme ServiceNow et Remedy. En général, il peut s’intégrer à la plupart des outils de gestion de systèmes existants. Il permet aux équipes DevOps d’appliquer différents outils à différentes étapes de leurs pipelines. Ansible a aussi la capacité de fonctionner avec des inventaires dynamiques provenant de différents fournisseurs infonuagiques adoptant une stratégie multinuages.

RapiditéAnsible n’a pas de surcharge relative à l’installation d’agents sur des machines ou des environnements cibles. Seule une connectivité est nécessaire. Ansible augmente de façon significative la vitesse de déploiement d’une MV, il est donc idéal pour l’automatisation de courts et éphémères cycles de vie, qui deviennent de plus en plus courants dans un monde en forte croissance infonuagique.

Ansible permet aux organisations d’automatiser à l’échelle la configuration de MV, d’instances et d’appareils en général, tout en maintenant le contrôle sur les déploiements et en élargissant la portée de l’automatisation. En se concentrant sur la façon dont les composantes entrent en corrélation plutôt que d’être gérées individuellement, Ansible peut bâtir à partir d’une infrastructure pour automatiser une plateforme dynamique. Il est devenu un outil répandu pour bâtir une Infrastructure en tant que code (IaC) et pour favoriser les pipelines CI/CD dynamiques.

New call-to-action