Introduction à Ansible

jacques

Tout développeur qu’il soit, a pu, un jour, rencontrer des tâches d’administration système, allant de la simple configuration d’un outil ou d’un serveur jusqu’au déploiement de tout en environnement pour les plus veinards.

Lorsque la tâche devient répétitive et rébarbative, on a tendance à se reposer sur des méthodes automatisées tels que des scripts concoctés par le plus grand chef, à savoir vous.

Ces méthodes peuvent convenir pour des actions simples et rapides mais lorsque l’on doit monter  tout un système sur un ou plusieurs environnements, là cela peut devenir douloureux.

C’est dans ce contexte que l’on a pu voir émerger des Outils de Gestion de Configuration (ou Configuration Management Tool) ces dernières années afin de faciliter l’automatisation de procédures d’exploitation usante.

L’un de ces outils que je souhaiterais vous présenter issu de cette philosophie se nomme Ansible.

Qu’est-ce que ANSIBLE ?

Ansible est un logiciel open-source (Licence sous GNU GPL), écrit en Python, qui offre la possibilité de déployer des outils, d’exécuter des tâches, de gérer la configuration d’outils sur vos environnements préférés à distance.

 

Mais que permet de faire ANSIBLE ?

Comme la plupart des Outils de Gestion de Configuration, il nous facilite la vie en réalisant à distance des traitements comme :

  • La configuration d’environnement ou d’outils
  • Les montées de versions de produit installé en environnement
  • L’installation de nouveaux outils
  • La remontée de tout un environnement (ce qui combine les trois points précédents)
  • et le plus important, le Café (pour peu que l’on ait une cafetière connectée)

Mise en place

Nos amis issus du monde Microsoft, pourrait être déçus car Ansible ne permet pas d’être installé sur leur précieux environnement Windows.

Au delà de ça, le produit ne nécessite quasiment rien. Une installation sur un serveur hôte suffit.

Seul pré-requis pour l’atout de ce produit, vos environnements distants doivent être accessibles par le protocole SSH ce qui suppose l’installation d’un système d’exploitation en amont.

Sachez toutefois que même si Ansible n’est pas déployable sur un Windows hôte, il permet néanmoins leur administration sur des serveurs distants.

 

 

Comment ça marche ?

Une fois l’installation réalisée sur le serveur hôte, tout le travail à réaliser est sur l’ordonnancement des tâches à effectuer.

Pour une telle entreprise, Ansible nous offre la possibilité d’écrire des “playbooks”, une arborescence comprenant :

  • Des scripts, décrivant nos tâches à réaliser, écrit en YAML.

Exemple de playbook pour installer Java :

 

  • Des templates, à transmettre et comprenant la configuration qui sera pré-rempli pour vos outils préférés, écrit en JINJA2.

Exemple de fichier template en JINJA2 : Fichier de description des utilisateurs à une application Tomcat.

 

Pour nous aider à écrire nos scripts, Ansible nous offre pas moins de 450 modules différents et une communauté active.

De plus, afin de voir des exemples de playbooks, Ansible  nous en fournit également un certain nombre sur GitHub.

Ansible Front-End

Ansible est un produit libre, mais tel quel, il n’est exploitable que par son mode console ce qui n’est pas très User-Friendly.

Mais, Ansible, nous propose son IHM Ansible Tower qui pourra permettre d’auditer, configurer et gérer vos déploiements mais malheureusement pour les petites bourses, il est payant.

Ansible_Tower_blog

 

Pas de panique, il existe des solutions alternatives. En effet, une de ces solutions est de pouvoir utiliser Foreman comme front avec le plugin de connexion Ansible.

La procédure d’installation s’effectue de la manière suivante :

  • Installer Foreman sur le même serveur hôte qu’Ansible
  • Installer le plugin Ansible pour Foreman
  • Installer une fonction python de callback qui fournira à Ansible un certain nombre d’information

Foreman_Ansible

Seul cheveux dans la soupe, Foreman est installé avec Puppet par défaut (Puppet étant un des produits alternatifs d’Ansible).

A moins de connaître la méthode d’installation depuis les sources de Foreman sans Puppet, le moyen le plus simple d’avoir une installation finale sans Puppet est de permettre l’installation de Foreman par la voie standard avant de retirer tous les paquets liés à Puppet.

 

facebooktwittergoogle_plusmail

Laisser un commentaire