Ansible

L’essentiel sur Ansible

Souple et disponible, la technologie de gestion de configuration Ansible se décline en plusieurs options. Découvrez les tenants et les aboutissants de ses produits, conçus pour répondre aux besoins de gestion de configuration IT.

L’outil de gestion de configuration Ansible automatise le packaging et le provisioning des logiciels dans l’environnement d'exploitation informatique d’une organisation. Il permet un déploiement multi-nœud et une exécution de tâches ponctuelles.

Ansible, déjà choisi par différentes entreprises dont Hootsuite, CloudPhysics et Lifesum, est développé et géré sous l'égide de Red Hat.

L’outil de gestion de configuration Ansible est écrit en Python et mis à disposition sous licence GPLv3+.

Ansible se démarque de la plupart des outils de ce type, car il ne fonctionne pas en mode client-serveur ou maître-esclave. Il utilise les technologies SSH (Secure Socket sHell) et JSON (JavaScript Object Notation) pour distribuer les modules sur les nœuds distants, et utilise donc les ressources uniquement pour des tâches utiles. Tant que le nœud n’est pas modifié, aucun agent ni daemon ne fonctionne en arrière-plan. Cette configuration tient compte des contextes des différents systèmes d’un environnement IT multiniveau.

Composants des outils de gestion de configuration Ansible

Les nœuds sont gérés sous SSH et doivent exécuter Python 2.4 ou une version ultérieure – ceux sous Python 2.4 ou 2.5 doivent disposer de la bibliothèque JSON spécifique, python-simplejson. Python 2.6 ou une version ultérieure doit être installé sur l’ordinateur de contrôle.

Les modules fonctionnent sur JSON. La syntaxe YAML permet d’exprimer les descriptions réutilisables des systèmes via des rôles. Autre fonctionnalité phare, la gestion de « l’idempotence », qui permet de rétablir l'état antérieur d'un système.

Les rôles peuvent servir d’objets dans les Playbooks Ansible. Ces Playbooks déclarent les configurations et alimentent l’orchestration des étapes nécessaires à la mise à disposition d'une application. Ils servent également au lancement synchrone et asynchrone des tâches.

Autre élément clé d’Ansible, aucun langage spécifique n’est requis pour écrire ses modules, car la solution utilise YAML et JSON. Pour l'utiliser, il est donc possible d’exploiter les compétences d’une équipe IT en Ruby, Python, ou PERL, ou encore en rédaction de scripts bash. Ansible dispose de son propre langage de programmation informatique quasi-naturel. Les utilisateurs bénéficient donc d’une courbe d’apprentissage généralement peu marquée.

Pour eux, toutefois, l’interface très peu conviviale de l'offre de base constitue un point noir : en effet, l’absence de synchronisation des interfaces utilisateur graphique  et en ligne de commande est susceptibles de générer des différences de résultats.

L’utilisation d'Ansible Tower en tant qu'interface s’est largement généralisée pour pallier ce problème. Tower rassemble les API REST et l’interface en ligne de commande Ansible pour former un seul environnement homogène.

Versions

Ansible Tower est disponible en quatre versions.

  • Une version d’essai complète, gratuite pendant un temps limité.

Trois versions payantes par abonnement :

  • la version Tower, limitée, en libre-service, assure la prise en charge de 100 nœuds maximum pour 5 000 dollars par an ou de 250 nœuds maximum pour 10 000 dollars par an, le tout sans assistance technique, mais avec mises à niveau ;
  • la version Standard, complète, avec toutes les fonctions, une assistance 8 heures par jour, 5 jours par semaine, assure la prise en charge de 100 nœuds maximum pour 10 000 dollars par an ou de 250 nœuds maximum pour 20 000 dollars par an, soit plus de 1 000 nœuds à 50 dollars par nœud et par an ;
  • la version Premium, avec assistance 24/7, assure la prise en charge de 100 nœuds maximum pour un prix de départ de 14 000 dollars par an, soit plus de 1 000 nœuds à 70 dollars par nœud et par an.

Ansible Galaxy est la première plate-forme de la communauté active d’utilisateurs Ansible avec plus de 4 000 membres. Les utilisateurs peuvent y télécharger et y essayer des modules et des playbooks.

Ansible 2.3.0.0, la version la plus récente, publiée en avril 2017, peut être téléchargée à partir de GitHub.

Ansible prend en charge différentes distributions Linux, des variantes d’Unix, Windows et OS X. Une réserve toutefois : l’ordinateur de contrôle ne peut pas être sous Windows. Vu le fonctionnement d’Ansible, l’ordinateur de contrôle peut être un portable.

Les qualités du tandem Ansible et Ansible Tower – flexibilité, simplicité et impact faible voire nul sur les ressources – en font un outil de gestion de configuration parfaitement adapté aux organisations de toutes tailles.

Pour approfondir sur DevOps et Agilité