Vous connaissez sans doute AWX (ou sa version licenciée, Ansible Automation Platform, anciennement Ansible Tower), la solution phare de Red Hat pour piloter et automatiser vos déploiements Ansible. Mais saviez-vous qu’il existe une alternative open-source, légère et polyvalente ? Semaphore UI permet non seulement d’orchestrer vos playbooks Ansible, mais aussi des outils comme OpenTofu, Terraform, des scripts Bash ou même PowerShell !
Contrairement à AWX, Semaphore UI mise sur la simplicité : pas de formulaires dynamiques (« Surveys ») pour vos playbooks — une limitation à garder en tête pour certains cas d’usage. En revanche, son déploiement (via Docker Compose ou Kubernetes) et son utilisation au quotidien sont vraiment simplissimes. Une solution idéale pour ceux qui cherchent l’efficacité sans la complexité.
Après l’installation initiale via Docker (voici mon manifest yaml, pour info) :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
--- services: mysql: image: mysql:8.0 hostname: mysql volumes: - ./semaphore-mysql:/var/lib/mysql environment: - MYSQL_RANDOM_ROOT_PASSWORD=yes - MYSQL_DATABASE=semaphore - MYSQL_USER=xxxxxxxxxx - MYSQL_PASSWORD=xxxxxxxxxx restart: unless-stopped semaphore: container_name: semaphoreui image: semaphoreui/semaphore:latest user: xxx:xxx ports: - xxxx:3000 environment: - SEMAPHORE_DB_USER=semaphore - SEMAPHORE_DB_PASS=xxxxxxxxxx - SEMAPHORE_DB_HOST=mysql - SEMAPHORE_DB_PORT=3306 - SEMAPHORE_DB_DIALECT=mysql - SEMAPHORE_DB=semaphore - SEMAPHORE_PLAYBOOK_PATH=/tmp/semaphore/ - SEMAPHORE_ADMIN_PASSWORD=xxxxxxxxxx - SEMAPHORE_ADMIN_NAME=xxxxxxxxxx - SEMAPHORE_ADMIN_EMAIL=cedric@vblog.io - SEMAPHORE_ADMIN=xxxxxxxxxx - ANSIBLE_HOST_KEY_CHECKING=false - SEMAPHORE_ACCESS_KEY_ENCRYPTION=xxxxxxxxxx - SEMAPHORE_SCHEDULE_TIMEZONE=UTC volumes: - ./config/:/etc/semaphore:rw - ./timezone:/etc/timezone:ro - ./tmp:/tmp/semaphore:rw restart: unless-stopped depends_on: - mysql |
… Dès le premier lancement, Semaphore UI vous accueille avec une interface web intuitive. En un clin d’œil, vous accédez à l’essentiel :
- Le planificateur de tâches (pratique, mais attention : le conteneur tourne par défaut en UTC, donc pensez à ajuster les horaires de vos exécutions pour éviter les mauvaises surprises avec votre fuseau horaire local),
- Vos dépôts GitHub (pour vos playbooks et scripts),
- Vos inventaires Ansible (la liste de vos hôtes cibles),
- Vos variables et secrets (clés privées, mots de passe, identifiants).




Un bémol tout de même : SemaphoreUI reste un projet jeune et en évolution. Comme évoqué plus tôt, il manque encore la possibilité de créer des formulaires interactifs pour déclencher des scripts avec des paramètres personnalisés à moins de passer par le champ de saisie des variables, bien moins ergonomique. Malgré tout, le projet est très actif, et cette limitation pourrait bien disparaître dans les prochaines mises à jour.
Alors, pour qui est fait SemaphoreUI ? Si l’interface d’AWX vous semble trop lourde (ou son déploiement trop complexe), et que ses limites ne bloquent pas vos workflows, foncez ! Personnellement, je l’utilise au quotidien pour automatiser mes sauvegardes de vLab, gérer mes données perso et vérifier la conformité de mes machines virtuelles et physiques je ne pourrais plus m’en passer. Reste à voir si la solution restera exploitable pour les environnements de production à plus grande échelle, mais pour des besoins agiles et légers, c’est un vrai coup de cœur.