Pourquoi self-héberger un tableau de bord Ansible ?
La ligne de commande reste l'outil le plus direct pour Ansible, mais elle isole. Quand plusieurs personnes partagent un nœud de contrôle, il n'y a pas de journal partagé, pas de contrôle d'accès fin, pas de planification intégrée. On finit par lancer les playbooks en SSH sur le serveur de contrôle — sans filet.
Semaphore UI apporte ce filet : chaque exécution est tracée, chaque membre de l'équipe se connecte avec son propre compte, et les secrets restent dans un Key Store chiffré plutôt que dans un fichier .env traîner sur le disque. Pour une agence qui gère dix clients ou une équipe DevOps qui maintient une flotte hétérogène, c'est la différence entre « ça marche » et « on sait ce qui s'est passé ».
Ce que Semaphore UI apporte sur un VPS ServOrbit
- Interface web complète — lancez, planifiez et suivez vos Playbooks Ansible, plans Terraform et scripts Bash depuis un navigateur, sans SSH sur le nœud de contrôle.
- SQLite embarqué — aucun service externe (PostgreSQL, Redis) : tout l'état vit dans un fichier monté dans un volume Docker.
- Projets Git-backed — pointez sur votre dépôt Ansible ou Terraform ; Semaphore tire le code à chaque exécution, fidèle au commit de votre branche.
- Key Store chiffré — clés SSH, mots de passe et tokens API stockés comme secrets nommés, injectés à l'exécution, jamais dans le YAML.
- Contrôle d'accès par rôle — Viewer, Task Runner ou Admin par projet : définissez précisément qui peut voir les logs et qui peut déclencher un déploiement.
- Tâches planifiées — cron intégré pour les patches nocturnes, sauvegardes hebdomadaires ou renouvellements de certificats.
- Streaming de logs en temps réel — suivez la sortie du playbook pendant son exécution avec code couleur et recherche dans l'historique.
Accès sans domaine : tunnel SSH ou sous-domaine ServOrbit
Semaphore UI écoute sur le port 3000 et ne requiert pas de nom de domaine. Pour un accès local depuis votre poste :
ssh -L 3000:127.0.0.1:3000 root@<ip-vps>Ouvrez ensuite http://localhost:3000 dans votre navigateur. Pour un accès permanent depuis toute l'équipe, attachez un domaine depuis votre espace client ServOrbit — nginx terminera le TLS et proxifiera vers le conteneur — ou activez le sous-domaine gratuit {app}.{slug}.servorbit-dns.com inclus avec chaque VPS.
Premiers pas avec Semaphore UI sur ServOrbit
Déployer depuis le marketplace
Dans votre espace client ServOrbit, allez dans Marketplace → Déploiement → Semaphore UI et cliquez Déployer. Le VPS est approvisionné sur Ubuntu 24.04 avec Docker préinstallé ; le conteneur démarre automatiquement.
Récupérer vos credentials
ServOrbit génère un mot de passe admin au moment du provisionnement et le stocke dans votre coffre de credentials. Connectez-vous avec le login
adminet ce mot de passe. Changez-le immédiatement depuis Profile → Change Password.Créer un projet et connecter votre dépôt
Dans Projects → New Project, donnez un nom à votre projet et ajoutez l'URL de votre dépôt Ansible ou Terraform. Si le dépôt est privé, ajoutez d'abord une clé SSH ou un token d'accès dans le Key Store, puis référencez-le dans les paramètres du projet.
Configurer un inventaire et lancer votre première tâche
Sous Inventory, créez une entrée listant vos hôtes cibles (liste statique ou script dynamique). Dans Task Templates, définissez une tâche référençant un playbook et l'inventaire que vous venez de créer, puis cliquez Run.
Planifier des tâches récurrentes
Depuis l'onglet Schedule d'un template, définissez une expression cron pour les exécutions automatiques — patches nocturnes, sauvegardes, renouvellement de certificats. L'historique complet des exécutions est accessible depuis le tableau de bord.
Gérer les secrets : le Key Store
Le point faible de nombreuses installations Ansible est la gestion des secrets : clés SSH traîner dans des fichiers, mots de passe en clair dans des variables. Semaphore UI résout ça avec un Key Store chiffré. Créez une entrée de type « SSH Key », « Login with password » ou « None » (pour les variables d'environnement), donnez-lui un nom, et référencez-le dans vos templates.
Les secrets ne sont jamais écrits dans les fichiers YAML ni dans les logs. La clé de chiffrement (SEMAPHORE_ACCESS_KEY_ENCRYPTION) est générée par ServOrbit au provisionnement et stockée dans votre coffre de credentials — elle ne transite jamais en clair.