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 nginx

Entrez Y pour confirmer l’installation.

install deps

Après l’installation, vérifiez le service postgresql avec la commande ci-dessous.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Vous verrez que le service postgresql est en cours d’exécution.

check postgresql

Maintenant, vérifiez l’état du service nginx avec ce qui suit :

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Dans ce qui suit, vous pouvez voir que le serveur web nginx est en cours d’exécution.

check nginx

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

check 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 psql

Maintenant, 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  

l

Enfin, tapez quit pour quitter PostgreSQL.

list database and user

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.deb

Une fois téléchargé, installez Ansible Semaphore avec la commande dpkg ci-dessous :

sudo dpkg -i semaphore_${VER}_linux_amd64.deb

Vous pouvez voir ci-dessous que l’installation est terminée.

download semaphore

Maintenant, exécutez la commande ci-dessous pour localiser le binaire semaphore, qui devrait être disponible à /usr/bin/semaphore.

which semaphore

Vérifiez la version d’Ansible Semaphore avec la commande suivante. Vous verrez qu’Ansible Semaphore 2.9 est installé.

semaphore version  
semaphore help

check semaphore

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 3 pour utiliser PostgreSQL comme base de données.
  • Entrez /opt/playbook pour 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.

setup semaphore

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

create admin user

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.service

Insé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.target

Enregistrez 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-reload

Enfin, 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 semaphore

Vous pouvez voir ci-dessous que le service semaphore est en cours d’exécution. Et par défaut, il fonctionne sur le port 3000.

semaphore service

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.conf

Insé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 -t

Enfin, exécutez la commande systemctl ci-dessous pour redémarrer Nginx et appliquer vos modifications.

sudo systemctl restart nginx

semaphore 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 -y

Aprè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.local

Une 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.

login semaphore

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

create project

Vous verrez le tableau de bord Semaphore comme suit :

create dashboard

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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.