Inhaltsverzeichnis


Funktionen

Aktivitäts- und Aufgabenprotokolle in Datei schreiben (PRO)

Semaphore Pro unterstützt jetzt das Schreiben der Aktivitäts- und Aufgabenprotokolle in eine Datei. Um dies zu aktivieren, fügen Sie die folgende Konfiguration zu Ihrer config.json hinzu:

{
  "log": {
    "events": {
      "enabled": true,
      "logger": {
        "filename": "./events.log"
      }
    },
    "task": {
      "enabled": true,
      "logger": {
        "filename": "./tasks.log"
      }
    }
  }
}

Oder Sie können dies mit den folgenden Umgebungsvariablen tun:

export SEMAPHORE_EVENT_LOG_ENABLED=True
export SEMAPHORE_EVENT_LOG_PATH=./tasks.log
export SEMAPHORE_TASK_LOG_ENABLED=True
export SEMAPHORE_TASK_LOG_PATH=./tasks.log

Jede Zeile in der Datei folgt diesem Format:

2024-01-03 12:00:34 user=234234 object=template action=delete ...

Datei-Logging unterstützt außerdem Rotation. Weitere Details finden Sie in der Dokumentation.

API-Tokens Seite

Rohaufgabenprotokolle anzeigen

Sie können jetzt das rohe Protokoll einer Aufgabe öffnen, indem Sie in der unteren rechten Ecke des Aufgabenprotokollfensters auf die RAW LOG-Schaltfläche klicken.

Projekt- und Runner-Cache leeren

Semaphore gibt Ihnen jetzt mehr Kontrolle über das Cache-Management.

Früher wurde ungenutzter Cache automatisch gelöscht, wenn Sie Templates oder Projekte entfernt haben. In einigen Fällen konnte jedoch Rest-Cache zurückbleiben und unbegrenzt gespeichert werden.

Mit der neuen Funktion “Cache leeren” können Sie manuell bereinigen:

Das hilft, Festplattenspeicher freizugeben, die Leistung zu verbessern und die Umgebung sauber zu halten.

Branch in Templates und Tasks überschreiben

Sie können jetzt den Standard-Branch des Quellrepositories in den Template-Einstellungen überschreiben.

Alternativ aktivieren Sie die Option Beim Ausführen nach Branch fragen, um bei jeder Task-Ausführung den Branch auszuwählen.

Neue Umgebungsvariable zur OIDC-Provider-Konfiguration

Wir haben eine neue Umgebungsvariable eingeführt: SEMAPHORE_OIDC_PROVIDERS zur Konfiguration von OpenID Connect (OIDC)-Providern.

Das ist besonders nützlich, wenn Sie Semaphore in einem Docker-Container betreiben.

Die Variable muss gültiges JSON im folgenden Format enthalten:

SEMAPHORE_OIDC_PROVIDERS='{
  "github": {
    "client_id": "***",
    "client_secret": "***"
    // additional fields...
  }
}'

Neue Struktur für temporäre Verzeichnisse

Wir haben die Struktur für temporäre Verzeichnisse verbessert, indem wir pro Projekt eigene Verzeichnisse eingeführt haben. Nun hat jedes Projekt seinen eigenen Ordner unter dem tmp_path-Verzeichnis.

Diese Änderung erleichtert das Verwalten und Aufräumen von Cache, wenn ein Projekt entfernt wird.

Zusätzlich folgt das Inventar-Verzeichnis für Templates jetzt einem klaren Namensschema, z. B.: tmp_path/project_0/repository_1_template_2_inventory_3 Diese Struktur verhindert das wiederholte Klonen des Inventar-Repositories bei jeder Task-Ausführung, verbessert die Leistung und reduziert Redundanz.

Externe (LDAP und OIDC) Benutzer manuell hinzufügen

Sie können LDAP- und OIDC-Benutzer jetzt zu Semaphore hinzufügen, bevor sie sich zum ersten Mal anmelden.

So können Sie deren Berechtigungen konfigurieren und sie im Voraus Projekten zuweisen.

Sie benötigen Administratorrechte, um einen Benutzer über die Weboberfläche hinzuzufügen (Checkbox External), oder Sie können die CLI mit dem --external-Flag verwenden:

semaphore user add \
  --external \
  --login john \
  --name John \
  --email [email protected] \
  --password=changeme

Standardwerte für Survey-Variablen

Sie können jetzt Standardwerte für Survey-Variablen festlegen, sodass häufige Eingaben bei Task-Ausführungen vorab ausgefüllt werden können.

TLS-Unterstützung für SMTP-Serververbindungen

Semaphore unterstützt jetzt sichere TLS-Verbindungen beim Versenden von E-Mails über einen SMTP-Server. Beispielkonfiguration:

{
  "email_alert": true,
  "email_sender": "[email protected]",
  "email_host": "smtp.example.com",
  "email_username": "user123",
  "email_password": "changeme",
  "email_tls": true,
  "email_port": "587",
  "email_tls_min_version": "1.1" // optional (default 1.2)
}

Konfigurierbare Ansible-Playbook-Verbosity-Stufen

Sie können jetzt die gewünschte Verbosity-Stufe beim Ausführen von Ansible-Playbook-Tasks auswählen, was beim Debuggen und Troubleshooting hilft.

Chroot-Unterstützung und Ausführung von Tasks als anderer Benutzer

Semaphore kann Tasks jetzt innerhalb einer chroot-Umgebung und unter einem angegebenen Benutzer ausführen, wodurch Sicherheit und Isolation verbessert werden. Beispielkonfiguration:

{
  "process": {
    "chroot": "/opt/semaphore/chroot",
    "user": "semrun"
  }
}

Beispiel für Umgebungsvariablen:

SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun

Bitbucket Webhook-Authentifizierungsunterstützung

Integrationen können nun mit Bitbucket-Webhook-Authentifizierung konfiguriert werden.

Zeitzoneneinstellungen für Zeitpläne

Semaphore verwendet nicht länger die Systemzeitzone. Stattdessen können Sie jetzt explizit eine Zeitzone für Zeitpläne festlegen, indem Sie die folgende Konfigurationsoption verwenden:

{
  "schedule": {
    "timezone": "Asia/Calcutta"
  }
}

Oder mittels der folgenden Umgebungsvariable:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

Fehlerbehebungen