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.

deps installieren

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.

postgresql prüfen

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

nginx prüfen

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

ansible –version

Ansible-Version prüfen

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;

Datenbank und Benutzer anlegen

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.

Datenbank und Benutzer auflisten

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.

Semaphor herunterladen

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

Semaphor prüfen

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.

Semaphor-Einrichtung

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

Admin-Benutzer anlegen

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.

Semaphorendienst

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

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

Anmelde-Semaphore

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

Projekt erstellen

Du siehst das Semaphore Dashboard wie folgt:

Dashboard erstellen

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.

Das könnte dich auch interessieren …