Ansible – Projet

Présentation

Ansible permet le déploiement et l’automatisation de tâche. Je le présente ici sous forme de projet car j’ai découvert cette technologie et j’ai dû la mettre en oeuvre en entreprise pendant mon stage de 6 mois.

Contexte

Durant mon stage chez Naitways, ma mission consistait à déployer régulièrement de nouvelles machines. Etant une petite entreprise, on fonctionnait de façon assez artisanale lors de mon arrivée. Avec le développement de l’entreprise ainsi que sa croissance, on a du réfléchir sur de nouvelles méthodes de déploiements, pour économiser du temps et de l’énergie.

Projet

Le projet consistait à automatiser le déploiement de nouvelles machines dans un environnement VMWare.

En effet, le déploiement devait en premier lieu se faire via des playbooks (scripts), puis via une interface web de manière à le rendre plus simple d’utilisation.

J’ai donc commencé la mission par créer les premiers playbooks. Ils permettaient de cloner des machines (depuis un template) sur un vCenter en se connectant à celui-ci via les modules vSphere implémentés dans ansible : http://docs.ansible.com/ansible/vsphere_guest_module.html

Une fois la création de VM par ansible fonctionnelle, j’ai entamé la création des playbooks pour chaque service : apache, mysql, vsftpd, phpmyadmin ainsi que la configuration réseau de la machine. On a choisi de partir sur ces services basiques pour le début, mais chaque playbook étant indépendant des autres, rien ne nous empèche de créer de nouveaux playbooks pour de nouveaux services dans le futur, ex : nginx, haproxy ou varnish.

Voici un exemple de playbook standard pour installer/configurer un service sur un template :

Playbook Ansible VSFTPD

Une fois le déploiement des services OK, on avait juste à renseigner les variables nécessaires : le nom du site, bases de données, mot de passes, etc.. et le déploiement s’effectuait correctement.

Cela nous a fait gagné beaucoup de temps car avec ce nouvel outil on pouvait déployer des machines en moins de 30secondes, contre 30min avant.

Ansible est aujourd’hui utilisé pour d’autres besoins, tel que le référencement de toutes nos machines et l’exécution de playbook. Notamment pour mettre à jour des paquets sur l’ensemble du parc (ex : openssl) ou encore l’ajout de nouveaux services comme netdata ou teleport.

Compétences liées

Ansible
GNU/Linux

Retour aux réalisations