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
3
ein, um PostgreSQL als Datenbank zu verwenden. - Gib
/opt/playbook
ein, 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.