Installation · 6 min read · Oct 19, 2025
Comment installer Ansible Semaphore sur Debian 12

Ansible Semaphore est une interface web open-source pour les playbooks Ansible. Elle permet le déploiement en utilisant l’automatisation Ansible via un navigateur web. Ansible Semaphore est entièrement écrit en Go. Il peut être exécuté sur Linux, Windows et macOS.
Ansible Semaphore permet le déploiement via Ansible depuis un tableau de bord d’administration web intuitif et réactif. Vous pouvez toujours revenir en arrière et restaurer la configuration, ainsi que gérer les environnements, les secrets, les inventaires et les clés d’accès. Il vous permet également d’exécuter des playbooks selon un calendrier avec des journaux détaillés et des notifications.
Dans ce guide, nous vous guiderons à travers l’installation d’Ansible Semaphore sur le serveur Debian 12. Vous installerez Semaphore avec PostgreSQL comme base de données et Nginx comme proxy inverse.
Prérequis
Pour commencer avec ce guide, assurez-vous d’avoir les éléments suivants :
- Un serveur Debian 12.
- Un utilisateur non-root avec des privilèges d’administrateur.
Installation des dépendances
Pour installer Ansible Semaphore, vous devez installer des dépendances telles qu’Ansible, PostgreSQL et Nginx sur votre système. Vous utiliserez PostgreSQL comme base de données et Nginx comme proxy inverse.
Tout d’abord, exécutez la commande ci-dessous pour mettre à jour l’index des paquets Debian et installer les dépendances, telles que ansible, la base de données postgresql et le serveur web nginx.
sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginxEntrez Y pour confirmer l’installation.

Après l’installation, vérifiez le service postgresql avec la commande ci-dessous.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresqlVous verrez que le service postgresql est en cours d’exécution.

Maintenant, vérifiez l’état du service nginx avec ce qui suit :
sudo systemctl is-enabled nginx
sudo systemctl status nginxDans ce qui suit, vous pouvez voir que le serveur web nginx est en cours d’exécution.

Enfin, vérifiez la version ansible en utilisant la commande ci-dessous. La version Ansible 2.14 devrait être installée sur votre système Debian.
ansible --version
Configuration de la base de données
Maintenant que vous avez installé les dépendances, vous allez configurer PostgreSQL et créer une nouvelle base de données et un utilisateur que Ansible Semaphore utilisera.
Connectez-vous au serveur PostgreSQL avec la commande suivante :
sudo -u postgres psqlMaintenant, exécutez les requêtes ci-dessous pour créer une nouvelle base de données semaphoredb et un utilisateur semaphore. Ajustez le mot de passe avec vos informations.
CREATE USER semaphore WITH PASSWORD 'passw0rd';
CREATE DATABASE semaphoredb OWNER semaphore;Ensuite, exécutez les requêtes suivantes pour vérifier la liste des bases de données et des utilisateurs dans PostgreSQL. Vous verrez qu’un nouvel utilisateur semaphore et une base de données semaphoredb sont disponibles.
du
lEnfin, tapez quit pour quitter PostgreSQL.

Installation d’Ansible Semaphore
Ansible Semaphore fournit des paquets pour différentes distributions Linux, y compris Debian/Ubuntu. Vous pouvez télécharger le fichier DEB d’Ansible Semaphore et l’installer avec la commande dpkg.
Téléchargez le paquet debian d’Ansible Semaphore avec la commande suivante :
VER=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest|grep tag_name | cut -d '"' -f 4|sed 's/v//g')
wget -q https://github.com/semaphoreui/semaphore/releases/download/v${VER}/semaphore_${VER}_linux_amd64.debUne fois téléchargé, installez Ansible Semaphore avec la commande dpkg ci-dessous :
sudo dpkg -i semaphore_${VER}_linux_amd64.debVous pouvez voir ci-dessous que l’installation est terminée.

Maintenant, exécutez la commande ci-dessous pour localiser le binaire semaphore, qui devrait être disponible à /usr/bin/semaphore.
which semaphoreVérifiez la version d’Ansible Semaphore avec la commande suivante. Vous verrez qu’Ansible Semaphore 2.9 est installé.
semaphore version
semaphore help
Configuration d’Ansible Semaphore
Dans cette section, vous allez configurer le répertoire d’installation d’Ansible Semaphore, intégrer Semaphore avec PostgreSQL, puis configurer l’utilisateur admin et le mot de passe pour Semaphore. Après cela, vous exécuterez également Semaphore en arrière-plan en tant que service systemd.
Créez un nouveau répertoire de configuration /etc/semaphore et entrez dans celui-ci. Ensuite, exécutez la commande semaphore setup pour configurer Ansible Semaphore.
mkdir -p /etc/semaphore; cd /etc/semaphore
semaphore setup- Entrez
3pour utiliser PostgreSQL comme base de données. - Entrez
/opt/playbookpour configurer le répertoire de playbook par défaut. - Appuyez sur ENTRÉE et laissez l’URL publique par défaut.
- Appuyez sur ENTRÉE pour utiliser les paramètres de notification par défaut.
- Entrez votre nom d’utilisateur admin, mot de passe et adresse e-mail. Cela sera utilisé pour se connecter à l’application web Ansible Semaphore.

Après que le processus soit terminé, vous verrez la confirmation ci-dessous :

Maintenant que vous avez configuré Ansible Semaphore, vous allez créer un nouveau service systemd et exécuter Ansible Semaphore en arrière-plan.
Créez un nouveau fichier de service systemd /etc/systemd/system/semaphore.service avec l’éditeur nano.
sudo nano /etc/systemd/system/semaphore.serviceInsérez la configuration ci-dessous.
[Unit]
Description=Semaphore Ansible
Documentation=https://github.com/ansible-semaphore/semaphore
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/semaphore service --config=/etc/semaphore/config.json
SyslogIdentifier=semaphore
Restart=always
[Install]
WantedBy=multi-user.targetEnregistrez le fichier et quittez l’éditeur.
Ensuite, exécutez la commande systemctl ci-dessous pour recharger le gestionnaire systemd et appliquer vos modifications.
sudo systemctl daemon-reloadEnfin, exécutez la commande ci-dessous pour démarrer et activer le service semaphore. Ensuite, vérifiez le service pour vous assurer qu’il fonctionne.
sudo systemctl enable --now semaphore
sudo systemctl status semaphoreVous pouvez voir ci-dessous que le service semaphore est en cours d’exécution. Et par défaut, il fonctionne sur le port 3000.

Configuration de Nginx en tant que proxy inverse
Maintenant que Semaphore fonctionne, vous allez configurer Nginx en tant que proxy inverse pour votre installation Semaphore. Assurez-vous d’avoir le nom de domaine prêt (nom de domaine local ou public).
Créez un nouveau fichier de configuration de bloc serveur /etc/nginx/sites-available/semaphore.conf avec l’éditeur nano.
sudo nano /etc/nginx/sites-available/semaphore.confInsérez la configuration suivante pour configurer Nginx en tant que proxy inverse pour Ansible Semaphore qui fonctionne sur le port 3000. Assurez-vous de changer l’option server_name avec votre nom de domaine.
upstream semaphore {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name auto.howtoforge.local;
client_max_body_size 0;
chunked_transfer_encoding on;
location / {
proxy_pass http://semaphore/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_request_buffering off;
}
location /api/ws {
proxy_pass http://semaphore/api/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}
}Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.
Maintenant, exécutez la commande ci-dessous pour activer le fichier de bloc serveur semaphore.conf et vérifier votre syntaxe Nginx. Si vous avez une syntaxe correcte, vous verrez une sortie test is successful - syntax is ok.
sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/
sudo nginx -tEnfin, exécutez la commande systemctl ci-dessous pour redémarrer Nginx et appliquer vos modifications.
sudo systemctl restart nginx
Sécurisation d’Ansible Semaphore avec HTTPS
Pour sécuriser l’installation d’Ansible Semaphore, vous allez activer HTTPS sur le proxy inverse Nginx. Vous utiliserez Certbot pour générer et configurer HTTPS pour Semaphore.
Installez les paquets certbot et python3-certbot-nginx avec la commande suivante :
sudo apt install certbot python3-certbot-nginx -yAprès l’installation, exécutez la commande certbot ci-dessous pour générer des certificats SSL/TLS pour votre installation Ansible Semaphore. Assurez-vous de changer le domaine et l’adresse e-mail avec vos informations.
sudo certbot --nginx --agree-tos --no-eff-email --redirect --email [email protected] -d auto.howtoforge.localUne fois le processus terminé, vos certificats SSL seront disponibles dans le répertoire /etc/letsencrypt/live/domain.com et votre installation Semaphore sera sécurisée avec HTTPS.
Connexion à Ansible Semaphore
Visitez votre nom de domaine Semaphore, qui est https://auto.howtoforge.local/. Si votre installation est réussie, vous verrez la page de connexion d’Ansible Semaphore.
Entrez votre utilisateur admin et votre mot de passe, puis cliquez sur SE CONNECTER pour confirmer.

Maintenant, entrez le nom de votre premier projet et cliquez sur Suivant pour continuer.

Vous verrez le tableau de bord Semaphore comme suit :

Conclusion
Félicitations ! Vous avez terminé l’installation d’Ansible Semaphore sur le serveur Debian 12. Vous avez installé Semaphore avec le serveur PostgreSQL et le serveur web Nginx. Vous avez également sécurisé Semaphore avec HTTPS via certbot et Letsencrypt.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.