SCOP d'ingénieurs experts du logiciel libre depuis 2004
+33 1 70 61 60 16

Découvrez Ansible un outil de provisioning hors norme

Parmi les outils de provisioning, Ansible se positionne de manière un peu différente des autres.

Notre prochain webinar

Parmi les outils de provisioning, Ansible se positionne de manière un peu différente des autres. Les outils classiques sont Puppet et Chef (le plus buzzwordé) alors que Salt se positionne lui sur les gros clusters. Le rôle de ses outils est assez confus, et leurs fonctions se recoupent partiellement. L'idée est de pouvoir installer et configurer de manière déclarative des applications sur une ou plusieurs machines. Il est possible de mettre à jour la configuration et de la réappliquer. Le terme technique est "recette". Concrètement, on se retrouve avec des listes de machines, des paramètres, des gabarits, des listes d'actions et du ssh. Les outils de provisioning fonctionnent avec n'importe quelle infrastructure, qu'elle soit bare metal, virtualisé, cloud ou container . Ce qui permet de tester et de valider sur une solution locale (virtualbox, lxc) pour ensuite déployer. Il est possible de mettre à disposition les recettes aux développeurs pour qu'ils puissent tester en local dans un cadre crédible, voire même d'affiner la recette.

Ansible se contente de proposer des "actions", plutôt que des recettes, qui permettent de créer des "playbooks". Aucun prérequis n'est nécessaire sur la cible, juste un accès SSH. Il est possible de gérer plusieurs OS, mais sans la même obstination des produits concurrents. Techniquement, Ansible est développé en Python, mais l'utilisateur n'a pas à s'en soucier. Le code est propre et l'équipe extrêmement réactive, un bug report propre a une réponse dans les deux heures. Leur approche est minimaliste et pragmatique, le principe de moindre surprise est appliqué à la lettre. La documentation, bien qu'imparfaite est tout à fait utilisable. L'installation du logiciel est orthodoxe, il est possible de construire un .deb sans dépendances farfelues, et Macbrew se débrouille comme un grand. L'intégration à Vagrant est très efficace.

Pour avoir une idée d'à quoi Ansible peut bien ressembler, il vaut mieux directement aller voir des exemples, plutôt que la doc, qui n'est pas très vendeuse. Il ne faut pas avoir peur de l'arborescence un peu généreuse, ni du yaml (avec des bouts de template Jinja2 dedans) qui sont utilisés avec parcimonie.

Ansible propose des exemples classiques ou même vicieux

Pour l'intégration avec Vagrant, j'ai réalisé une installation de la pile Graphite

Installation Debian

Quelques dépendances :

apt-get install python-jinja2 python-yaml dpkg-dev 

Les sources (release ou git ):

wget https://github.com/ansible/ansible/archive/v1.4.1.tar.gz git clone https://github.com/ansible/ansible.git 

Le Makefile s'occupe du reste :

make deb apt-get install python-paramiko python-crypto sshpass dpkg -i ../ansible_1.4.1_all.deb 

Mathieu Lecarme

Inscrivez-vous à notre newsletter

Mieux comprendre le monde du DevOps et de l'administration système.

Abonnez-vous à notre newsletter

Hébergement & Infogérance

  • ✓ Service Astreinte 24h/7j/365
  • ✓ Supervision, monitoring & Alertes
  • ✓ Mises à jour en continu
  • ✓ Certificat SSL letsencrypt
  • ✓ Hébergement dédié sécurisé en France
  • ✓ Backup vers datacenter distant
Découvrir notre offre

Expertise Technologique

Notre équipe possède une vaste expertise technologique.