Accéder au contenu principal

Ansible

Ansible, pour des infrastructures reproductibles

Une application web repose sur de nombreux composants : serveurs web, PHP, bases de données, caches, files de messages, reverse proxies, réseau. Tant que ces composants sont installés et configurés à la main, chaque environnement finit par diverger des autres, et chaque intervention devient un risque.

Ansible répond à ce problème en décrivant l’état attendu de l’infrastructure dans des fichiers texte, les playbooks, versionnés avec le code de l’application. Appliquer un playbook amène les serveurs dans cet état, autant de fois que nécessaire, avec le même résultat. L’infrastructure devient lisible, reproductible et historisée.

Schéma d'Ansible : un nœud de gestion se connecte en SSH à plusieurs serveurs pour leur appliquer la configuration

Simple par conception

Ansible ne demande aucun agent sur les machines gérées : une connexion SSH et Python suffisent. Il s’adapte donc aussi bien à un serveur dédié qu’à des machines virtuelles chez un hébergeur ou à des instances dans le cloud.

Son écosystème est riche : des milliers de rôles prêts à l’emploi sont publiés sur Ansible Galaxy, et il est facile d’écrire les siens. Nos amis de redirection.io y proposent par exemple des rôles pour installer leur agent et configurer nginx ou Apache.

Ce que nous automatisons avec Ansible

🧱 Le provisioning

Installation et configuration uniformes de tout ce dont l’application a besoin : PHP, nginx, PostgreSQL ou MariaDB, Redis, RabbitMQ, Varnish, Elasticsearch, réseau privé, pare-feu, utilisateurs et clés SSH.

🚀 Les déploiements

Mise en production déclenchée depuis l’intégration continue, avec bascule sans interruption de service, exécution des migrations et possibilité de retour arrière en une commande.

🔐 Les opérations récurrentes

Renouvellement des certificats Let’s Encrypt, mises à jour de sécurité, sauvegardes, rotation des secrets : les tâches que l’on oublie quand elles sont manuelles, et qui ne sont plus jamais oubliées une fois automatisées.

Comment JoliCode emploie Ansible

JoliCode n’est ni un hébergeur ni une société d’infogérance. Mais nous considérons qu’une équipe de développement doit comprendre finement l’infrastructure sur laquelle tourne son code, et savoir la décrire.

Nous maintenons un ensemble de rôles Ansible qui constitue notre socle de gestion de configuration, utilisé sur les projets que nous réalisons pour nos clients comme pour nos propres produits. Pour que chaque développeuse et développeur puisse s’en servir sans installation particulière, cette stack est conteneurisée avec Docker et pilotée par des tâches Castor. Les déploiements se déclenchent ainsi directement depuis GitHub Actions, GitLab CI ou CircleCI.

Cette maîtrise nous permet aussi de dialoguer d’égal à égal avec vos hébergeurs, et de vous conseiller sur le choix entre serveurs dédiés, cloud, PaaS ou infogérance.

Les outils de notre chaîne de déploiement : GitHub Actions, GitLab CI et CircleCI pilotent Ansible, Castor et Docker

Faire appel à nous pour votre infrastructure

  1. Décrire et versionner une infrastructure existante, pour la rendre reproductible et sortir de la dépendance à une personne ou à un document obsolète.
  2. Automatiser vos déploiements depuis votre intégration continue, avec des mises en production fiables et réversibles.
  3. Vous accompagner dans vos choix d’hébergement et dans la relation avec votre prestataire, du cahier des charges à l’exploitation.

💡 Parlons de votre infrastructure.Écrivez-nous

Nos derniers articles sur Ansible

Nous publions régulièrement notre état de l’art ou nos recommandations concernant les outils que nous mettons en œuvre.

Voir tous nos articles sur Ansible

Appliqué chez nos clients