Inhaltsverzeichnis


Features

Aktivitäts- und Aufgabenprotokolle in eine 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 ...

Dateibasierte Protokollierung unterstützt auch Rotation. Weitere Details finden Sie in der Dokumentation.

API-Token-Seite

Roh-Taskprotokolle anzeigen

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

Projekt- und Runner-Cache löschen

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

Früher wurde nicht verwendeter 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 löschen“ können Sie manuell bereinigen:

Dies hilft, Festplattenspeicher freizugeben, die Leistung zu verbessern und Ihre 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 Prompt for branch on execution, um bei jeder Ausführung eines Tasks 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.

Dies 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 der temporären Verzeichnisse verbessert, indem wir projektbezogene Verzeichnisse eingeführt haben. Jetzt hat jedes Projekt seinen eigenen dedizierten Ordner unter dem tmp_path-Verzeichnis.

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

Außerdem folgt das Inventory-Verzeichnis für Templates nun einem klaren Namensformat, z. B.: tmp_path/project_0/repository_1_template_2_inventory_3 Diese Struktur hilft, das Inventory-Repository nicht bei jeder Task-Ausführung erneut zu klonen, verbessert die Performance und reduziert Redundanz.

Externe (LDAP- und OIDC-) Benutzer manuell hinzufügen

Sie können jetzt LDAP- und OIDC-Benutzer in 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 Flag --external 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, um bei Task-Ausführungen häufige Eingaben vorab auszufüllen.

TLS-Unterstützung für SMTP-Serververbindungen

Semaphore unterstützt jetzt sichere TLS-Verbindungen beim Versand 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-Level

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

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

Semaphore kann nun Tasks innerhalb einer chroot-Umgebung und unter einem angegebenen Benutzer ausführen, was Sicherheit und Isolation verbessert. 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 jetzt mit Bitbucket-Webhook-Authentifizierung konfiguriert werden.

Zeitzoneneinstellungen für Zeitpläne

Semaphore verwendet nicht mehr 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 mit der folgenden Umgebungsvariable:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

Fehlerbehebungen