Ansible

le

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

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

Service Conseil et accompagnement

Bearstech vous propose ses services Conseil et accompagnement ansible

Découvrir ce service

Partager cet article

Flux RSS


Partager cet article :