Inhaltsverzeichnis


Funktionen

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

Dateilogging unterstützt auch Rotation. Weitere Details sind in der Dokumentation verfügbar.

API-Token-Seite

Rohprotokolle von Aufgaben anzeigen

Sie können jetzt das rohe Protokoll einer Aufgabe öffnen, indem Sie auf die Schaltfläche ROHPROTOKOLL in der unteren rechten Ecke des Aufgabenprotokollfensters 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 Vorlagen oder Projekte entfernt haben. In einigen Fällen konnte jedoch übrig gebliebener Cache bestehen bleiben und unbegrenzt gespeichert werden.

Mit der neuen Funktion “Cache leeren” können Sie manuell aufräumen:

Dies hilft, Speicherplatz freizugeben, die Leistung zu verbessern und Ihre Umgebung ordentlich zu halten.

Branch in Vorlagen und Aufgaben überschreiben

Sie können jetzt den Standardbranch des Quell-Repositorys in den Vorlageneinstellungen überschreiben.

Alternativ aktivieren Sie die Option Bei Ausführung nach Branch fragen, um den Branch jedes Mal auszuwählen, wenn Sie eine Aufgabe ausführen.

Neue Umgebungsvariable für OIDC-Anbieter-Konfiguration

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

Dies ist besonders nützlich, wenn Semaphore in einem Docker-Container ausgeführt wird.

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

SEMAPHORE_OIDC_PROVIDERS='{
  "github": {
    "client_id": "***",
    "client_secret": "***"
    // zusätzliche Felder...
  }
}'

Neue temporäre Verzeichnisstruktur

Wir haben die Struktur der temporären Verzeichnisse verbessert, indem wir projektbezogene Verzeichnisse eingeführt haben. Jetzt hat jedes Projekt seinen eigenen dedizierten Ordner im tmp_path-Verzeichnis.

Diese Änderung erleichtert die Verwaltung und das Aufräumen des Caches, wenn ein Projekt entfernt wird.

Darüber hinaus folgt das Inventarverzeichnis für Vorlagen jetzt einem klaren Namensformat, wie z.B.: tmp_path/project_0/repository_1_template_2_inventory_3 Diese Struktur hilft, das Klonen des Inventar-Repositorys bei jeder Aufgabenausführung zu vermeiden, was die Leistung verbessert und Redundanz verringert.

Möglichkeit, externe (LDAP- und OIDC-) Benutzer manuell hinzuzufügen

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

Dies ermöglicht es Ihnen, ihre Berechtigungen im Voraus zu konfigurieren und sie Projekten zuzuweisen.

Sie benötigen Administratorrechte, um einen Benutzer über die Weboberfläche hinzuzufügen (Checkbox Extern), 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 Umfragevariablen

Sie können jetzt Standardwerte für Umfragevariablen festlegen, was das Vorabfüllen gängiger Eingaben während der Aufgabenläufe erleichtert.

TLS-Unterstützung für SMTP-Serververbindungen

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

{
  "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 (Standard 1.2)
}

Konfigurierbare Ansible-Playbook-Verbosity-Stufen

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

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

Semaphore kann jetzt Aufgaben in einer Chroot-Umgebung und unter einem bestimmten Benutzer ausführen, was die Sicherheit und Isolation verbessert. Konfigurationsbeispiel:

{
  "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 mit der folgenden Konfigurationsoption festlegen:

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

Oder mit der folgenden Umgebungsvariable:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

Fehlerbehebungen