Déployer une application sur un serveur Linux manuellement, c'est une opération répétable mais jamais identique : chaque technicien a ses habitudes, chaque installation son lot de variations. Nous avons mis en place Ansible pour standardiser et automatiser ces déploiements, en développant des rôles réutilisables qui évitent la duplication de code et garantissent la cohérence d'un déploiement à l'autre.

Qu'est-ce que Ansible ?

Ansible est un outil open source d'automatisation informatique et d'infrastructure as code. Il permet de configurer des serveurs, déployer des applications et orchestrer des tâches via des playbooks déclaratifs, sans agent à installer.

Déployer des applications Linux sans duplication de code

Chaque application déployée sur un serveur Linux partage des étapes communes : installation de dépendances, création des répertoires, configuration du service, gestion du pare-feu, mise en place de la supervision. Sans structure, ces étapes sont réécrites dans chaque playbook, créant de la duplication et des risques de divergence.

Nous avons développé des rôles Ansible (rôles et collections) qui encapsulent ces étapes communes. Chaque déploiement d'application appelle ces rôles plutôt que de réécrire la logique. Concrètement :

Chaque déploiement d'application appelle les rôles dont il a besoin. Un serveur qui doit héberger une application sous Docker avec une base MariaDB appelle install-base, puis install-docker, puis install-mariadb - dans le bon ordre, avec la bonne configuration, sans réécrire la logique d'installation.

Un bug corrigé dans un rôle Ansible est corrigé pour toutes les applications qui l'utilisent. Sans rôles, le même bug existerait en autant d'endroits que de playbooks.

Ce que cela change pour les déploiements

Cette approche modulaire transforme le déploiement d'une nouvelle application en une opération standardisée :

Notre déploiement

Ansible est utilisé pour l'ensemble des déploiements sur les serveurs Linux du parc. Chaque application de la stack - Keycloak, Nextcloud, Zabbix, Guacamole, phpIPAM et les autres - est déployée via un playbook Ansible qui appelle les rôles communs. Les mises à jour sont également gérées par Ansible, nœud par nœud pour les clusters, garantissant une mise à jour sans interruption de service. Ansible Semaphore fournit l'interface web pour déclencher et suivre les déploiements.

Intégration au système d'information

Ansible est le socle d'automatisation de l'ensemble de la stack : il déploie, configure et met à jour toutes les applications. Les rôles développés couvrent l'intégration NGINX, Let's Encrypt, Uptime Kuma et la gestion des sauvegardes. Ansible Semaphore, accessible via Keycloak, permet aux équipes de déclencher des déploiements depuis une interface web sans passer par la ligne de commande.

Bénéfices concrets

Ansible s'inscrit dans notre approche d'un système d'information hospitalier open source, souverain et maîtrisé, où chaque brique est déployée et documentée pour rester exploitable en autonomie par les équipes.

Un projet de déploiement open source ?

Nous déployons et intégrons des solutions open source souveraines pour les établissements de santé.

Demander un diagnostic de 30 min →