Ansible

Ansible permet d’automatiser le déploiement de services et d’applications au sein d’un réseau d’entreprise. Par l’écriture d’un livre de procédures, il facile la démarche devops, mais aussi l’intégration continue, la documentation et la réutilisation de bonnes pratiques.

Fonctionnement

Ansible se base sur l’écriture d’une livre de recettes (playbook) au format YAML, décrivant non pas des actions mais des états souhaités sur chacun des serveurs géré par lui.  Chacun des états souhaité, pris en charge par l’un ou l’autre des nombreux modules d’Ansible est atteint en exécutant un certain nombre de tâches, qui peuvent à leur tour déclencher des handlers, comme par exemple le redémarrage d’un service si son fichier de configuration a été modifié.

Ansible utilise une approche sans agent pour automatiser le déploiement de services ou l’exécution de tâches, ne dépendant que de la présence d’un serveur SSH.  Les modèles de fichiers de configuration sont écrit dans le puissant langage de template Jinja2, ce qui permet d’utiliser des variables dans les différents modèles.  Le DNS change d’adresse IP ?  Pas de souci, l’interpolation de son adresse IP sera assuré dans chaque modèle concerné et les actions nécessaires seront exécutées après chaque modification de fichier dépendant de ce modèle.

Avantages

Ansible, par la définition de rôles associés à chaque serveur ou groupe de serveurs (chaque serveur pouvant appartenir à plusieurs groupes), permet la réutilisation de recettes d’un réseau à l’autre.  Les rôles permettent également de gérer finement quel état doit être associé à chaque serveur.

Une partie du parc doit être sauvegardée et pas l’autre ?  Le rôle gérant le déploiement des agents de sauvegarde ne sera appliqué qu’aux serveurs appartenant à un groupe précis.  Un service doit utiliser un mandataire différent en fonction du réseau d’appartenance des serveurs ?  Une variable de groupe sera configurée différemment en fonction du groupe associé aux serveurs et pourra être utilisée dans le même template de configuration pas besoin de dupliquer ses templates !

Les possibilités sont vastes et ne sont limitées que par l’imagination:

  • la configuration du serveur de supervision peut être gérée dynamiquement et les nouveaux serveurs seront ajoutés et configurés dynamiquement ;
  • un ou plusieurs socles OS peuvent être définis et évoluer via Ansible ;
  • en parallèle, chaque serveur sera configuré pour remonter des informations à l’agent de supervision ;
  • les accès par mot de passe aux applicatifs peuvent être gérés de manière centralisée via Ansible, un nouveau membre dans l’équipe aura donc ses accès poussés sur chaque applicatif
  • les clefs SSH peuvent être ajoutées ou décommissionnées automatiquement et la gestion des ACL peut être fait via Ansible (donner l’accès aux environnements de développement, intégration et production à des groupes différents d’administrateurs) ;
  • une infrastructure basée le cloud peut être gérée via Ansible, qui possède des modules pour s’interfacer avec les prestataires de cloud majeurs ;
  • l’inventaire des serveurs peut être géré automagiquement par Ansible (en fonction du matériel présent sur un serveur, des tâches différentes seront exécutées) ;
  • etc…

Le plus d’Alcôve

Alcôve maîtrise Ansible, qui est utilisé pour déployer son infrastructure.  Ainsi, les bonnes pratiques d’administration via Ansible sont parfaitement intégrées par notre équipe.