So installierst du Ansible Semaphore unter Debian 12
Ansible Semaphore ist eine Open-Source-Web-UI für Ansible-Playbooks. Es ermöglicht die Bereitstellung mit Ansible-Automatisierung über einen Webbrowser. Ansible Semaphore ist ausschließlich in Go geschrieben. Es kann auf Linux, Windows und macOS ausgeführt werden.
Ansible Semaphore ermöglicht die Bereitstellung über Ansible von einem intuitiven und reaktionsschnellen Web-Administrations-Dashboard aus. Du kannst die Konfiguration jederzeit zurücksetzen und wiederherstellen und Umgebungen, Secrets, Inventare und Zugriffsschlüssel verwalten. Außerdem kannst du Playbooks nach einem Zeitplan mit detaillierten Protokollen und Benachrichtigungen ausführen.
In diesem Leitfaden führen wir dich durch die Installation von Ansible Semaphore auf einem Debian 12 Server. Du installierst Semaphore mit PostgreSQL als Datenbank und Nginx als Reverse Proxy.
Voraussetzungen
Um mit dieser Anleitung beginnen zu können, musst du Folgendes haben:
- Einen Debian 12 Server.
- Einen Nicht-Root-Benutzer mit Administrator-Rechten.
Installieren der Abhängigkeiten
Um Ansible Semaphore zu installieren, musst du Abhängigkeiten wie Ansible, PostgreSQL und Nginx auf deinem System installieren. Du wirst PostgreSQL als Datenbank und Nginx als Reverse Proxy verwenden.
Führe zunächst den folgenden Befehl aus, um deinen Debian-Paketindex zu aktualisieren und Abhängigkeiten wie ansible, postgresql Datenbank und nginx Webserver zu installieren.
sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginx
Gib Y ein, um die Installation zu bestätigen.

Nachdem die Installation abgeschlossen ist, überprüfe den Dienst postgresql mit dem folgenden Befehl.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Du wirst sehen, dass der Dienst postgresql läuft.

Überprüfe nun den Status des nginx Dienstes mit folgendem Befehl:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
In der folgenden Abbildung siehst du, dass der nginx Webserver läuft.

Überprüfe abschließend die Version von ansible mit dem folgenden Befehl. Ansible 2.14 sollte auf deinem Debian-System installiert sein.
ansible –version

Einrichten der Datenbank
Nachdem du die Abhängigkeiten installiert hast, konfigurierst du PostgreSQL und legst eine neue Datenbank und einen neuen Benutzer an, die Ansible Semaphore verwenden wird.
Melde dich mit dem folgenden Befehl am PostgreSQL-Server an:
sudo -u postgres psql
Führe nun die folgenden Abfragen aus, um eine neue Datenbank semaphoredb und einen neuen Benutzer semaphore zu erstellen. Passe das Passwort mit deinen Angaben an.
CREATE USER semaphore WITH PASSWORD ‚passw0rd‘;
CREATE DATABASE semaphoredb OWNER semaphore;

Als Nächstes führst du die folgenden Abfragen aus, um die Liste der Datenbanken und Benutzer in PostgreSQL zu überprüfen. Du wirst sehen, dass ein neuer Benutzer semaphore und eine Datenbank semaphoredb verfügbar sind.
\du
\l
Zum Schluss gibst du quit ein, um PostgreSQL zu verlassen.

Installation von Ansible Semaphore
Ansible Semaphore bietet Pakete für verschiedene Linux-Distributionen, darunter auch Debian/Ubuntu. Du kannst die DEB-Datei von Ansible Semaphore herunterladen und sie mit dem Befehl dpkg installieren.
Lade das Ansible Semaphore Debian-Paket mit dem folgenden Befehl herunter:
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
Nach dem Download installierst du Ansible Semaphore mit dem folgenden dpkg Befehl:
sudo dpkg -i semaphore_${VER}_linux_amd64.deb
Unten kannst du sehen, dass die Installation abgeschlossen ist.

Führe nun den folgenden Befehl aus, um die Binärdatei semaphore zu finden, die unter /usr/bin/semaphore verfügbar sein sollte.
welche Semaphore
Überprüfe die Version von Ansible Semaphore mit dem folgenden Befehl. Du wirst sehen, dass Ansible Semaphore 2.9 installiert ist.
semaphore version
semaphore help

Konfigurieren von Ansible Semaphore
In diesem Abschnitt konfigurierst du das Installationsverzeichnis von Ansible Semaphore, integrierst Semaphore in PostgreSQL und richtest den Admin-Benutzer und das Passwort für Semaphore ein. Danach wirst du Semaphore als systemd-Dienst im Hintergrund laufen lassen.
Erstelle ein neues Konfigurationsverzeichnis /etc/semaphore und gehe dort hinein. Dann führst du den Befehl semaphore setup aus, um Ansible Semaphore zu konfigurieren.
mkdir -p /etc/semaphore; cd /etc/semaphore semaphore setup
- Gib
3ein, um PostgreSQL als Datenbank zu verwenden. - Gib
/opt/playbookein, um das Standardverzeichnis für das Playbook einzurichten. - Drücke ENTER und belasse die öffentliche URL als Standard.
- Drücke ENTER, um die Standard-Benachrichtigungseinstellungen zu verwenden.
- Gib deinen Admin-Benutzernamen, dein Passwort und deine E-Mail-Adresse ein. Damit meldest du dich bei der Webanwendung Ansible Semaphore an.

Nachdem der Vorgang abgeschlossen ist, siehst du die unten stehende Bestätigung:

Jetzt, wo du Ansible Semaphore konfiguriert hast, erstellst du einen neuen systemd-Dienst und lässt Ansible Semaphore im Hintergrund laufen.
Erstelle eine neue systemd-Dienstdatei /etc/systemd/system/semaphore.service mit dem Editor nano.
sudo nano /etc/systemd/system/semaphore.service
Füge die unten stehende Konfiguration ein.
[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
Speichere die Datei und beende den Editor.
Als Nächstes führst du den Befehl systemctl aus, um den systemd Manager neu zu laden und deine Änderungen zu übernehmen.
sudo systemctl daemon-reload
Zum Schluss führst du den folgenden Befehl aus, um den Dienst semaphore zu starten und zu aktivieren. Überprüfe den Dienst, um sicherzustellen, dass er läuft.
sudo systemctl enable –now semaphore
sudo systemctl status semaphore
Wie du unten sehen kannst, läuft der Dienst semaphore. Und standardmäßig läuft er auf dem Port 3000.

Nginx als Reverse Proxy einrichten
Jetzt, wo Semaphore läuft, richtest du Nginx als Reverse-Proxy für deine Semaphore-Installation ein. Stelle sicher, dass du den Domainnamen bereit hast (lokaler oder öffentlicher Domainname).
Erstelle eine neue Serverblockkonfiguration /etc/nginx/sites-available/semaphore.conf mit dem Editor nano.
sudo nano /etc/nginx/sites-available/semaphore.conf
Füge die folgende Konfiguration ein, um Nginx als Reverse Proxy für Ansible Semaphore einzurichten, das auf Port 3000 läuft. Achte darauf, dass du die Option server_name durch deinen Domainnamen ersetzt.
upstream semaphore {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name auto.hwdomain.io;
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 "";
}
}
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den folgenden Befehl aus, um die Serverblockdatei semaphore.conf zu aktivieren und deine Nginx-Syntax zu überprüfen. Wenn du die richtige Syntax hast, siehst du eine Ausgabe test is successful - syntax is ok.
sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/
sudo nginx -t
Zum Schluss führst du den folgenden systemctl Befehl aus, um Nginx neu zu starten und deine Änderungen zu übernehmen.
sudo systemctl restart nginx

Sichern von Ansible Semaphore mit HTTPS
Um die Installation von Ansible Semaphore zu sichern, musst du HTTPS auf dem Nginx Reverse Proxy aktivieren. Du verwendest Certbot, um HTTPS für Semaphore zu erzeugen und zu konfigurieren.
Installiere die Pakete certbot und python3-certbot-nginx mit dem folgenden Befehl:
sudo apt install certbot python3-certbot-nginx -y
Nachdem die Installation abgeschlossen ist, führe den folgenden Befehl certbot aus, um SSL/TLS-Zertifikate für deine Ansible Semaphore-Installation zu generieren. Achte darauf, dass du die Domain und die E-Mail-Adresse mit deinen Daten abänderst.
sudo certbot –nginx –agree-tos –no-eff-email –redirect –email alice@hwdomain.io -d auto.hwdomain.io
Sobald der Vorgang abgeschlossen ist, sind deine SSL-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar und deine Semaphore-Installation ist mit HTTPS gesichert.
Einloggen in Ansible Semaphore
Rufe deine Semaphore-Domain auf, die https://auto.hwdomain.io/ heißt. Wenn deine Installation erfolgreich war, siehst du die Anmeldeseite von Ansible Semaphore.
Gib deinen Admin-Benutzer und dein Passwort ein und bestätige mit SIGN IN.

Gib nun den Namen deines ersten Projekts ein und klicke auf Weiter, um fortzufahren.

Du siehst das Semaphore Dashboard wie folgt:

Fazit
Herzlichen Glückwunsch! Du hast die Installation von Ansible Semaphore auf dem Debian 12 Server abgeschlossen. Du hast Semaphore mit dem PostgreSQL-Server und dem Nginx-Webserver installiert. Außerdem hast du Semaphore mit HTTPS über certbot und Letsencrypt gesichert.