Dans le cadre de nos missions d'intégration et de modernisation du système d'information hospitalier, nous avons déployé Ansible Semaphore. Cette page présente l'outil, son usage et le contexte de sa mise en œuvre.

Qu'est-ce que Ansible Semaphore ?

Semaphore est une interface web open source pour Ansible. Elle permet de lancer et planifier des playbooks, de gérer les accès et de suivre l'historique des exécutions depuis une interface graphique, sans passer par la ligne de commande.

Ansible sans ligne de commande

Sans Ansible Semaphore, lancer un playbook Ansible nécessite de se connecter en SSH au serveur de contrôle, de naviguer dans les répertoires, de saisir la bonne commande avec les bons paramètres. C'est une barrière technique qui limite l'usage d'Ansible aux seuls profils ayant l'habitude du terminal.

Ansible Semaphore supprime cette barrière : toutes les opérations se font depuis une interface web accessible depuis n'importe quel navigateur. Lancer un playbook devient aussi simple que cliquer sur un bouton.

Ansible Semaphore ne simplifie pas Ansible - il le rend accessible. Toute la puissance d'Ansible, sans avoir besoin d'ouvrir un terminal.

Tout le paramétrage d'Ansible dans une interface web

Ansible Semaphore prend en compte l'intégralité du paramétrage d'Ansible. Chaque concept Ansible a son équivalent dans l'interface :

Déploiement conteneurisé, authentification centralisée et mises à jour maîtrisées

Cette application est déployée en conteneur Docker, orchestré et provisionné via Ansible. Cette approche garantit un déploiement reproductible, documenté et homogène d'un environnement à l'autre : la configuration est décrite sous forme de code, ce qui élimine les installations manuelles et fiabilise chaque mise en service.

Nous assurons les mises à jour de manière transparente pour les utilisateurs : les montées de version sont préparées, testées et appliquées de façon contrôlée, sans interruption perceptible du service. L'établissement bénéficie ainsi d'une application toujours à jour et sécurisée, sans avoir à gérer lui-même la complexité technique des mises à jour.

L'accès à cette application repose sur une authentification centralisée par OIDC avec Keycloak. Comme l'ensemble des applications que nous déployons, elle s'appuie sur un fournisseur d'identité unique : les utilisateurs se connectent avec les mêmes identifiants sur tout le parc applicatif, la gestion des accès est mutualisée et les règles de sécurité (mot de passe, second facteur, révocation) sont appliquées de façon homogène. Ce socle d'authentification unifié simplifie l'expérience utilisateur et renforce la maîtrise des accès à l'échelle du système d'information.

Notre déploiement

Ansible Semaphore est déployé en conteneur Docker, exposé via NGINX avec certificat Let's Encrypt, et authentifié via Keycloak. Les playbooks sont stockés dans GitLab et synchronisés automatiquement dans Semaphore. Les variables sensibles (mots de passe, clés SSH) sont stockées dans le coffre-fort de Semaphore et ne sont jamais exposées dans les logs ou l'interface.

Intégration au système d'information

Ansible Semaphore est le point d'entrée opérationnel pour tous les déploiements Ansible. Il est connecté à GitLab pour la gestion des playbooks, à Keycloak pour l'authentification centralisée, et supervisé par Uptime Kuma. Les rôles Ansible développés (install-base, install-docker, install-mariadb, install-mysql, install-pgsql) sont tous accessibles et exécutables depuis Semaphore.

Bénéfices concrets

Ansible Semaphore 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 →