Semaphore v2.17 bringt neue Funktionen und Verbesserungen für Infrastruktur-Automatisierung und DevOps-Teams. Dieses Release konzentriert sich darauf, die Developer Experience zu verbessern und Infrastructure-as-Code-Workflows zu vereinfachen.
Übersicht der wichtigsten Funktionen
-
Benutzerdefinierter Issuer-Name in der TOTP-App
Sie können jetzt beim Registrieren von Semaphore in einer TOTP-(Time-based One-Time Password)-Authenticator-App einen benutzerdefinierten Issuer-Namen angeben. Das ermöglicht eine klarere Identifikation von Semaphore-Konten in Authenticator-Apps und verbessert die Bedienbarkeit – besonders für Nutzer, die mehrere 2FA-Tokens verwalten.
Mehr erfahren » -
Secrets aus Umgebungsvariablen lesen
Sie können ein Secret jetzt an eine Umgebungsvariable binden.
Mehr erfahren » -
Einmalige geplante Aufgaben
Sie können jetzt eine Aufgabe für ein bestimmtes Datum und eine bestimmte Uhrzeit planen (nicht nur per Cron-Schedule). Sie wird nur einmal ausgeführt.
Mehr erfahren » -
Anpassbare Views
Sie können Template-Views jetzt wesentlich flexibler anpassen.
Mehr erfahren » -
Alle Tasks stoppen
Die Schaltfläche Stop all ermöglicht es, alle laufenden Tasks für ein Template auf einmal zu stoppen. Das ist nützlich, wenn Sie schnell einen Rollout stoppen oder irrtümlich gestartete Jobs abbrechen müssen.
Mehr erfahren » -
Syslog-Server-Unterstützung
Semaphore kann seine Logs jetzt an einen externen Syslog-Server senden. Damit lassen sich Logs leichter zentral sammeln und in bestehende Monitoring- und Alerting-Pipelines integrieren.
Mehr erfahren » -
Rollback von Datenbank-Migrationen
Sie können Datenbank-Migrationen jetzt zurückrollen. Das erleichtert ein sicheres Downgrade von Semaphore, falls nötig.
Mehr erfahren » -
Drag-and-Drop für Survey-Variablen, CLI-Args, usw.
Sie können Survey-Variablen, CLI-Argumente und andere Listenelemente jetzt per Drag-and-Drop neu anordnen.
Mehr erfahren » -
Projekt-Export und -Import via CLI
Exportieren und importieren Sie Projekte über die Kommandozeile, um Backups, Migrationen und wiederholbare Setups zwischen Umgebungen zu vereinfachen.
Mehr erfahren » -
CLI-Tool zum Migrieren von BoltDB zu SQLite/MySQL/Postgres
Ein neuer CLI-Migrator hilft beim Verschieben von Semaphore-Daten von BoltDB zu SQLite, MySQL oder Postgres. BoltDB wird deprecated und in v3.0 entfernt.
Mehr erfahren » -
Devolutions Server-Unterstützung (Enterprise)
Enterprise-Installationen können Devolutions Server nun als Secrets-Backend integrieren, ähnlich wie HashiCorp Vault.
Mehr erfahren » -
Benutzerdefinierte Rollen und erweitertes RBAC (Enterprise)
Definieren Sie benutzerdefinierte Rollen mit maßgeschneiderten Berechtigungen, die dem Zugriffskonzept Ihrer Organisation entsprechen.
Mehr erfahren » -
Active-Active High Availability (Enterprise)
Betreiben Sie mehrere aktive Semaphore-Instanzen hinter einem Load Balancer – ohne Primary/Standby – für höhere Verfügbarkeit.
Mehr erfahren » -
Verbesserte Protokollierung
Logs enthalten jetzt ausführlichere Kontextinformationen.
Mehr erfahren » -
Subscription-Key via Umgebungsvariable (PRO)
PRO-Subscription-Keys können jetzt über eine Umgebungsvariable bereitgestellt werden. Das ist praktisch für containerisierte und automatisierte Deployments.
Mehr erfahren »
Funktionen
Benutzerdefinierter Issuer-Name in der TOTP-App
Semaphore v2.17 führt eine neue Option ein, um den in TOTP-(Time-based One-Time Password)-Authenticator-Apps angezeigten Issuer-Namen anzupassen.
Zweck:
Der Issuer-Name hilft Nutzern zu erkennen, welches Konto in ihrer Authenticator-App zu Semaphore gehört – besonders nützlich beim Verwalten von Konten aus mehreren Organisationen oder Umgebungen.
Konfiguration:
Sie können den Issuer-Namen auf zwei Arten festlegen:
-
Umgebungsvariable
Setzen Sie beim Starten von Semaphore die Umgebungsvariable
SEMAPHORE_TOTP_ISSUERauf den gewünschten Issuer-Namen.Beispiel (Docker Compose):
environment: - SEMAPHORE_TOTP_ISSUER=MyCompany SemaphoreBeispiel (Standalone):
SEMAPHORE_TOTP_ISSUER="MyCompany Semaphore" ./semaphore server -
Konfigurationsdatei
Setzen Sie in Ihrer
config.jsondie folgende Option im Abschnittauth:{ "auth": { "totp": { "issuer": "MyCompany Semaphore" } } }
Priorität:
Wenn sowohl die Umgebungsvariable als auch die Option in der Konfigurationsdatei gesetzt sind, hat die Umgebungsvariable (SEMAPHORE_TOTP_ISSUER) Vorrang.
Standardwert:
Ist nichts gesetzt, lautet der Standard-Issuer-Name Semaphore.
Ergebnis:
Wenn Nutzer ihr Semaphore-TOTP-Konto in einer Authenticator-App hinzufügen, erscheint der ausgewählte Issuer-Name, sodass sich mehrere Konten leichter unterscheiden lassen.
Für vollständige Details zu allen verfügbaren Umgebungsvariablen siehe die Dokumentation zu Installations-Umgebungsvariablen.
Einmalige geplante Aufgaben
Semaphore unterstützt jetzt einmalige Zeitpläne zusätzlich zu Cron-Schedules. Verwenden Sie dies, wenn eine Aufgabe zu einem bestimmten Datum und einer bestimmten Uhrzeit einmalig ausgeführt werden soll.
Anwendungsfälle:
- Eine Wartungsaufgabe während eines genehmigten Change-Windows ausführen
- Einen einmaligen Rollout oder Backfill-Job starten
Anpassbare Views
Template-Views sind jetzt deutlich anpassbarer. Damit können Sie festlegen, was angezeigt wird und wie es organisiert ist, um besser zu Ihrem Workflow zu passen.
-
Sie können den Tab „All“ an eine beliebige Stelle in der Leiste verschieben.
-
Sie können den Tab „All“ für reguläre Projektbenutzer vollständig ausblenden.
-
Sie können die Standard-Sortierung der Templates für eine bestimmte View ändern.
Typische Verbesserungen umfassen:
- Bessere Organisation template-bezogener Informationen
- Mehr Flexibilität bei der Anordnung von View-Inhalten
Alle Tasks stoppen
Sie können jetzt alle laufenden Tasks für ein Template mit einer einzigen Aktion stoppen. Das hilft, einen Rollout schnell zu unterbrechen oder Jobs zu beenden, die versehentlich gestartet wurden.
Syslog-Server-Unterstützung
Semaphore kann Logs jetzt an einen externen Syslog-Server weiterleiten. Das erleichtert die Zentralisierung der Log-Sammlung und die Integration in bestehende Monitoring- und Alerting-Pipelines.
config.json:
{
"syslog": {
"enabled": true,
"network": "udp",
"address": "localhost:514",
"tag": "semaphore"
}
}
Umgebungsvariablen:
export SEMAPHORE_SYSLOG_ENABLED=True
export SEMAPHORE_SYSLOG_NETWORK=udp
export SEMAPHORE_SYSLOG_ADDRESS=localhost:514
export SEMAPHORE_SYSLOG_TAG=semaphore
Rollback von Datenbank-Migrationen
Datenbank-Migrationen können jetzt zurückgerollt werden. Das macht es sicherer, auf Upgrade-Probleme zu reagieren, und vereinfacht bei Bedarf Downgrades.
semaphore migrate --undo-to 2.16
Drag-and-Drop für Survey-Variablen, CLI-Args, usw.
Sie können Survey-Variablen, CLI-Argumente und andere Listenelemente jetzt per Drag-and-Drop neu anordnen. Das macht Templates leichter zu pflegen und zu prüfen.
Projekt-Export und -Import via CLI
Semaphore unterstützt jetzt das automatische Importieren von Projekten.
Der Docker-Container akzeptiert dafür die Umgebungsvariablen SEMAPHORE_IMPORT_PROJECT_FILE und SEMAPHORE_IMPORT_PROJECT_NAME.
Wenn Sie ein Projekt über die CLI importieren müssen, können Sie den folgenden Befehl verwenden:
semaphore project import --file /path/to/the/backup.json --project-name "Demo project"
Wenn der Projektname nicht angegeben wird, wird der Projektname aus den Backup-Metadaten verwendet.
Um alle Projekte aus einem Verzeichnis zu importieren, verwenden Sie den folgenden Befehl:
semaphore project import --dir /path/to/the/dir
Um ein Projekt zu exportieren, können Sie den folgenden Befehl verwenden:
semaphore project export --project-name "Demo project" --file /path/to/the/backup.json
Wenn Sie alle Projekte in ein Verzeichnis exportieren möchten:
semaphore project export --dir /path/to/the/dir
Wenn Sie diesen Befehl mit cron kombinieren, können Sie automatische Projekt-Backups implementieren.
CLI-Tool zum Migrieren von BoltDB zu SQLite/MySQL/Postgres
Ein neuer CLI-Migrator hilft dabei, Semaphore-Daten von BoltDB zu SQLite, MySQL oder Postgres zu verschieben. BoltDB wird deprecated und in v3.0 entfernt.
semaphore migrate --from-boltdb /path/to/boltdb/file
Devolutions Server-Unterstützung (Enterprise)
Enterprise-Installationen können Devolutions Server nun als Secrets-Backend integrieren, ähnlich wie HashiCorp Vault.
Benutzerdefinierte Rollen und erweitertes RBAC (Enterprise)
Semaphore UI unterstützt jetzt benutzerdefinierte projektweite und globale Rollen. Damit wird eine fein abgestufte Zugriffskontrolle für Tasks und Templates möglich. RBAC wurde um granularere Kontrollen über Semaphore-Ressourcen hinweg erweitert, sodass Teams das Prinzip der geringsten Privilegien präziser umsetzen können.
Enterprise-Nutzer können benutzerdefinierte Rollen mit maßgeschneiderten Berechtigungen definieren, die den Zugriffserfordernissen der Organisation entsprechen.
Projekt-Owner und -Manager können diese Rollen bestimmten Templates zuweisen und ihnen gezielte Berechtigungen zum Ausführen, Anzeigen oder Verwalten von Tasks geben.
Active-Active High Availability (Enterprise)
In einem standardmäßigen Single-Node-Setup erledigt ein Semaphore-Prozess alles: Er stellt die Web-UI bereit, führt geplante Jobs aus, startet Tasks und pusht Live-Updates an Browser. Fällt dieser Prozess aus, steht alles still.
Mit Active-Active HA betreiben Sie mehrere identische Semaphore-Instanzen hinter einem Load Balancer. Alle sind gleichzeitig voll aktiv – es gibt kein „Primary“ oder „Standby“. Jeder Node kann jede Anfrage bedienen, jede Aufgabe ausführen oder jeden Zeitplan triggern. Über eine gemeinsam genutzte Redis-Instanz koordinieren sie sich, damit keine Kollisionen entstehen.
Alle Instanzen verbinden sich mit denselben zwei Backends:
- Datenbank (Postgres oder MySQL) — die Single Source of Truth für alle persistenten Daten: Projekte, Templates, Schedules, Task-Historie, Benutzer usw.
- Redis — die Koordinationsschicht. Redis erfüllt drei Zwecke:
- Verteilte Locks — um zu verhindern, dass zwei Nodes dasselbe ausführen
- Pub/Sub-Messaging — um Echtzeit-Events zwischen Nodes weiterzuleiten
- Gemeinsamer Task-Queue-Status — damit alle Nodes denselben Queue-Status sehen
{
"ha": {
"enabled": true,
"node_id": "node1",
"redis": {
"addr": "localhost:6379"
}
}
}
Verbesserte Protokollierung
Die Protokollierung wurde verbessert. Logs bieten jetzt mehr Kontext und Klarheit. Das hilft Ihnen dabei, Fehler zu beheben und nachzuvollziehen, was während eines Laufs passiert ist.
Subscription-Key via Umgebungsvariable (PRO)
PRO-Subscription-Keys können jetzt über eine Umgebungsvariable bereitgestellt werden. Das ist hilfreich für containerisierte Deployments und CI/CD-gesteuerte Rollouts.