Logo Ansible

Ansible

Dans le domaine de l’exploitation d’applications Web, la cohérence et la reproductibilité des infrastructures sont essentielles pour garantir un déploiement fiable et efficace des applications. Les environnements informatiques peuvent être complexes, avec de multiples composants interdépendants tels que des serveurs, des bases de données, des reverse proxies, des mono-services applicatifs, des réseaux et des services cloud.

Sans une gestion rigoureuse, les différences entre les environnements de développement, de test et de production peuvent entraîner des erreurs lors du déploiement des applications, des failles de sécurité et des temps d’arrêt inattendus. Une infrastructure reproductible permet de réduire ces risques en assurant que chaque instance de l’application est déployée dans un environnement stable et prévisible.

Les intérêts de l’utilisation d’Ansible

Ansible est une solution open-source qui propose une approche puissante pour automatiser la gestion et la configuration de l’infrastructure. En utilisant des « playbooks » Ansible, les développeurs et « devops » peuvent décrire de manière déclarative l’état désiré de leur infrastructure, et Ansible se charge d’appliquer ces configurations de manière cohérente sur tous les nœuds de l’infrastructure. Concrètement, si une infrastructure est composée de plusieurs serveurs, Ansible peut installer tous les composants de base du système (PHP, nginx, PostgreSQL, RabbitMQ, Varnish, ou tout autre outil nécessaire au fonctionnement de l’application) de manière uniforme, les configurer de manière identique, créer les réseaux privés, etc. Ainsi, l’approche itérative et sujette à erreurs que l’on constate, si une infrastructure de production est gérée manuellement, disparaît complétement et laisse la place à un traitement automatisé, reproductible, historisé, robuste et rapide de toutes les étapes qui permettent à votre application Web d’être disponible en ligne.

Le recours systématique à Ansible pour toutes les tâches d’administration système simplifie considérablement les processus de déploiement et de configuration, réduisant ainsi les erreurs humaines et les temps d’arrêt. De plus, Ansible ne nécessite pas l’installation d’agents sur les nœuds cibles, ce qui le rend facile à déployer et à utiliser dans divers environnements.

Ansible dispose d’une vaste communauté de contributeurs, d’une roadmap claire et d’un niveau de maintenance professionnels. De très nombreux playbooks sont disponibles sur Github ou sur Ansible Galaxy, la plateforme d’hébergement des rôles proposés par la communauté. Nos amis de redirection.io y proposent ainsi des rôles pour installer et configurer l’agent redirection.io ou les proxies nginx et Apache. La grande variété de modules disponibles permet de répondre à de nombreux cas d’usage, de sorte que le déploiement d’applications complexes peut s’appuyer sur de nombreux rôles maintenus, entretenus et encadrés par de nombreux contributeurs.

Comment JoliCode emploie Ansible

JoliCode n’est ni une société d’infogérance ni un hébergeur. Pour autant, disposer de robustes compétences en administration système est une des composantes de notre approche, car elle permet d’avoir une excellente compréhension des problématiques auxquelles seront confrontés les hébergeurs et équipes de « run » au cours de l’exploitation des logiciels que nous produisons.

Nous maintenons un ensemble de rôles Ansible qui constituent un socle de gestion de la configuration, fréquemment employé dans le cadre des projets que nous réalisons, pour notre compte ou pour le compte de nos clients. Afin de simplifier encore l’emploi d’Ansible par les équipes de développement de JoliCode, notre utilisation d’Ansible est dockerisée et est pilotée par un ensemble de tâches écrites avec Castor, le projet de task-runner open-source écrit par JoliCode. Une fois mis en place au sein d’un projet, notre stack Ansible permet ainsi le déclenchement de déploiements directement depuis l’interface d’intégration continue – Github Actions, Gitlab CI/CD ou CircleCI par exemple.

Au-delà de l’utilisation directe de cette collection interne de rôles, l’emploi d’Ansible nous permet de pouvoir dialoguer de manière constructive avec les équipes des hébergeurs, en étant force de proposition sur l’outillage d’exploitation à mettre en place pour garantir à nos clients la plus haute disponibilité possible tout en conservant des budgets d’hébergement raisonnables.

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