Installazione software · 6 min read · Oct 19, 2025

Come installare Ansible Semaphore su Debian 12

Ansible Semaphore è un’interfaccia web open-source per i playbook di Ansible. Consente il deployment utilizzando l’automazione di Ansible tramite un browser web. Ansible Semaphore è scritto interamente in Go. Può essere eseguito su Linux, Windows e macOS.

Ansible Semaphore consente il deployment tramite Ansible da un intuitivo e reattivo cruscotto di amministrazione web. Puoi sempre tornare indietro e ripristinare la configurazione e gestire ambienti, segreti, inventari e chiavi di accesso. Consente anche di eseguire playbook secondo un programma con log dettagliati e notifiche.

In questa guida, ti guideremo attraverso l’installazione di Ansible Semaphore sul server Debian 12. Installerai Semaphore con PostgreSQL come database e Nginx come reverse proxy.

Requisiti

Per iniziare con questa guida, assicurati di avere quanto segue:

  • Un server Debian 12.
  • Un utente non root con privilegi di amministratore.

Installazione delle dipendenze

Per installare Ansible Semaphore, devi installare dipendenze come Ansible, PostgreSQL e Nginx sul tuo sistema. Utilizzerai PostgreSQL come database e Nginx come reverse proxy.

Prima di tutto, esegui il comando qui sotto per aggiornare l’indice dei pacchetti di Debian e installare le dipendenze, come ansible, il database postgresql e il server web nginx.

sudo apt update  
sudo apt install git curl wget software-properties-common ansible postgresql nginx

Inserisci Y per confermare l’installazione.

install deps

Dopo che l’installazione è completata, controlla il servizio postgresql con il comando qui sotto.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Vedrai che il servizio postgresql è in esecuzione.

check postgresql

Ora controlla lo stato del servizio nginx con il seguente:

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Di seguito, puoi vedere che il server web nginx è in esecuzione.

check nginx

Infine, controlla la versione di ansible utilizzando il comando qui sotto. La versione Ansible 2.14 dovrebbe essere installata sul tuo sistema Debian.

ansible --version

check ansible version

Configurazione del database

Ora che hai installato le dipendenze, configurerai PostgreSQL e creerai un nuovo database e utente che Ansible Semaphore utilizzerà.

Accedi al server PostgreSQL con il seguente comando:

sudo -u postgres psql

Ora esegui le query qui sotto per creare un nuovo database semaphoredb e un utente semaphore. Regola la password con le tue informazioni.

CREATE USER semaphore WITH PASSWORD 'passw0rd';  
CREATE DATABASE semaphoredb OWNER semaphore;

Successivamente, esegui le seguenti query per verificare l’elenco dei database e degli utenti in PostgreSQL. Vedrai che un nuovo utente semaphore e il database semaphoredb sono disponibili.

\du  
\l

Infine, digita quit per uscire da PostgreSQL.

list database and user

Installazione di Ansible Semaphore

Ansible Semaphore fornisce pacchetti per diverse distribuzioni Linux, inclusi Debian/Ubuntu. Puoi scaricare il file DEB di Ansible Semaphore e installarlo con il comando dpkg.

Scarica il pacchetto debian di Ansible Semaphore con il seguente comando:

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

Una volta scaricato, installa Ansible Semaphore con il comando dpkg qui sotto:

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

Di seguito puoi vedere che l’installazione è completata.

download semaphore

Ora esegui il comando qui sotto per localizzare il binario semaphore, che dovrebbe essere disponibile in /usr/bin/semaphore.

which semaphore

Controlla la versione di Ansible Semaphore con il seguente comando. Vedrai che Ansible Semaphore 2.9 è installato.

semaphore version  
semaphore help

check semaphore

Configurazione di Ansible Semaphore

In questa sezione, configurerai la directory di installazione di Ansible Semaphore, integrerai Semaphore con PostgreSQL e poi imposterai l’utente admin e la password per Semaphore. Dopo di che, eseguirai anche Semaphore in background come servizio systemd.

Crea una nuova directory di configurazione /etc/semaphore e accedi ad essa. Poi, esegui il comando semaphore setup per configurare Ansible Semaphore.

mkdir -p /etc/semaphore; cd /etc/semaphore  
semaphore setup
  • Inserisci 3 per utilizzare PostgreSQL come database.
  • Inserisci /opt/playbook per impostare la directory predefinita dei playbook.
  • Premi INVIO e lascia l’URL pubblico come predefinito.
  • Premi INVIO per utilizzare le impostazioni di notifica predefinite.
  • Inserisci il tuo nome utente admin, password e indirizzo email. Questo sarà utilizzato per accedere all’applicazione web di Ansible Semaphore.

setup semaphore

Dopo che il processo è completato, vedrai la conferma qui sotto:

create admin user

Ora che hai configurato Ansible Semaphore, creerai un nuovo servizio systemd e eseguirai Ansible Semaphore in background.

Crea un nuovo file di servizio systemd /etc/systemd/system/semaphore.service con l’editor nano.

sudo nano /etc/systemd/system/semaphore.service

Inserisci la configurazione qui sotto.

[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

Salva il file ed esci dall’editor.

Successivamente, esegui il comando systemctl qui sotto per ricaricare il gestore systemd e applicare le tue modifiche.

sudo systemctl daemon-reload

Infine, esegui il comando qui sotto per avviare e abilitare il servizio semaphore. Poi, controlla il servizio per assicurarti che sia in esecuzione.

sudo systemctl enable --now semaphore  
sudo systemctl status semaphore

Puoi vedere qui sotto che il servizio semaphore è in esecuzione. E per impostazione predefinita, è in esecuzione sulla porta 3000.

semaphore service

Configurazione di Nginx come reverse proxy

Ora che Semaphore è in esecuzione, configurerai Nginx come reverse proxy per la tua installazione di Semaphore. Assicurati di avere il nome di dominio pronto (nome di dominio locale o pubblico).

Crea un nuovo file di configurazione del blocco server /etc/nginx/sites-available/semaphore.conf con l’editor nano.

sudo nano /etc/nginx/sites-available/semaphore.conf

Inserisci la seguente configurazione per impostare Nginx come reverse proxy per Ansible Semaphore che gira sulla porta 3000. Assicurati di cambiare l’opzione server_name con il tuo nome di dominio.

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 "";
    }
}

Salva il file ed esci dall’editor quando hai finito.

Ora esegui il comando qui sotto per attivare il file del blocco server semaphore.conf e verificare la sintassi di Nginx. Se hai una sintassi corretta, vedrai un output test is successful - syntax is ok.

sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/  
sudo nginx -t

Infine, esegui il seguente comando systemctl qui sotto per riavviare Nginx e applicare le tue modifiche.

sudo systemctl restart nginx

semaphore nginx

Sicurezza di Ansible Semaphore con HTTPS

Per proteggere l’installazione di Ansible Semaphore, abiliterai HTTPS sopra il reverse proxy Nginx. Utilizzerai Certbot per generare e configurare HTTPS per Semaphore.

Installa i pacchetti certbot e python3-certbot-nginx con il seguente comando:

sudo apt install certbot python3-certbot-nginx -y

Dopo che l’installazione è completata, esegui il comando certbot qui sotto per generare certificati SSL/TLS per la tua installazione di Ansible Semaphore. Assicurati di cambiare il dominio e l’indirizzo email con le tue informazioni.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --email [email protected] -d auto.howtoforge.local

Una volta completato il processo, i tuoi certificati SSL saranno disponibili nella directory /etc/letsencrypt/live/domain.com e la tua installazione di Semaphore sarà protetta con HTTPS.

Accesso ad Ansible Semaphore

Visita il tuo nome di dominio Semaphore, che è https://auto.howtoforge.local/. Se la tua installazione è riuscita, vedrai la pagina di accesso di Ansible Semaphore.

Inserisci il tuo nome utente admin e la password, quindi fai clic su ACCEDI per confermare.

login semaphore

Ora inserisci il nome del tuo primo progetto e fai clic su Avanti per continuare.

create project

Vedrai il cruscotto di Semaphore come segue:

create dashboard

Conclusione

Congratulazioni! Hai completato l’installazione di Ansible Semaphore sul server Debian 12. Hai installato Semaphore con il server PostgreSQL e il server web Nginx. Hai anche protetto Semaphore con HTTPS tramite certbot e Letsencrypt.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.