Semaphore UI vs. GitLab CI/CD

Denis GukovGründer und CTO bei Semaphore UI
20 Min. Lesezeit

GitLab CI/CD und Semaphore UI führen beide Infrastrukturautomatisierung aus. GitLab verbindet Jobs mit Code-Reviews, Tests und Anwendungsauslieferung. Semaphore UI organisiert Ansible, Terraform/OpenTofu und Wartungsprozeduren als gemeinsam genutzte Vorgänge mit Inventaren, Zugangsdaten, Startformularen und Zeitplänen. Dieser Vergleich behandelt GitLab 19.5 und Semaphore UI 2.20.0.

Diesen Artikel mit KI besprechen

Übersicht

Ein Anwendungsrelease und eine bestandsweite Zertifikatsprüfung können dieselben Playbooks verwenden und dennoch unterschiedliche Arbeitsabläufe erfordern. Ein Release beginnt üblicherweise mit einer Codeänderung, erzeugt ein Artefakt und dokumentiert seine Tests. Wartung kann damit beginnen, dass ein Bediener einen Dienst, eine Umgebung und eine vorbereitete Aktion auswählt. Beide benötigen zuverlässige Automatisierung. Die Personen, die die Arbeit anstoßen, und die von ihnen bearbeitete Konfiguration sind jedoch nicht immer dieselben.

GitLab vereint Repositories, Merge Requests und CI/CD in einer umfassenderen Entwicklungsplattform. Pipeline-YAML definiert die Jobs, GitLab Runner führen sie aus, und die Ergebnisse bleiben mit der vorgeschlagenen Codeänderung verknüpft. Manuelle Starts und Pipeline-Zeitpläne ermöglichen auch Arbeit unabhängig von einem neuen Commit. GitLab.com, Self-Managed und Dedicated bieten unterschiedliche Wege, diese Plattform zu beziehen und zu betreiben.

Semaphore UI verbindet sich mit vorhandenen Git-Repositories und bereitet Automatisierung über Task Templates vor. Ansible-Inventare, Zugangsdaten und Variablengruppen sind gemeinsame Projektressourcen. Eingabeformulare erfassen ausführungsspezifische Werte, Zeitpläne wiederholen vorbereitete Aufgaben, und Workflows verbinden Vorgänge über unterstützte Werkzeuge hinweg. Playbooks können in GitLab bleiben, während Teams Semaphore UI als Oberfläche für Deployments, Provisionierung und spätere Wartung nutzen.

Semaphore-UI-Aufgabenvorlagen für mehrere Automatisierungswerkzeuge in einem Projekt.
Semaphore UI. Vorbereitete Ansible-, Infrastructure-as-Code- und Kommandozeilenvorgänge teilen sich die Aufgabenliste eines Projekts.
GitLab-Pipeline-Details mit nach Stages gruppierten Jobs.
GitLab. In Pipeline-Stages gruppierte Jobs. Beispiel aus der offiziellen Dokumentation. Quelle

Kurzvergleich

Für Routineautomatisierung unterstützen beide manuelle Starts, Zeitpläne und Ausführungsprotokolle. Die Unterschiede betreffen den Ort, an dem Ingenieure den Vorgang definieren, die Wiederverwendung seiner Ziele und Zugangsdaten sowie die Verbindung seiner Ergebnisse mit Code-Review und Auslieferung.

GitLab und Semaphore UI: zentrale Eigenschaften
Kriterien Semaphore UI GitLab
Jobkonfiguration Werkzeugspezifische Task Templates Jobs in .gitlab-ci.yml und wiederverwendbare Komponenten
Automatisierungstools Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python Kommandozeilenwerkzeuge in Runner-Jobs
Hosting Selbst gehostet, Binärprogramm, Pakete, Docker oder Kubernetes GitLab.com, Self-Managed oder Dedicated
Ausführung Auf dem Server oder auf Runnern GitLab Runner mit Shell-, Container- oder Kubernetes-Executors
Ansible-Inventar Wiederverwendbare Inventarressourcen, Dateien in Git und Ansible-Discovery-Plugins Im Job konfigurierte Inventardateien und Discovery-Plugins
Eingaben und Variablen Eingabeformulare, Variablengruppen und Inventarvariablen Typisierte Pipeline-Eingaben, CI/CD-Variablen und Umgebungsbereiche
Workflows Visueller Graph zur Verknüpfung werkzeugspezifischer Task Templates YAML-Pipelines, Jobabhängigkeiten und wiederverwendbare Komponenten
Zugangsdaten Key Store und Integrationen externer Secret-Stores CI/CD-Variablen und Integrationen externer Secret-Systeme
Zugriffskontrolle Projektrollen, benutzerdefinierte Rollen in Enterprise und Vorlagenberechtigungen Gruppen- und Projektrollen, geschützte Branches und Umgebungen
Terraform-State Integriertes HTTP-Backend in Pro oder externes Backend Von GitLab verwaltetes HTTP-State-Backend, auch in Free
Lizenz und Tarife Community unter MIT-Lizenz, Pro und Enterprise Community Edition unter MIT-Lizenz, kommerzielle Funktionen der Enterprise Edition

Semaphore UI bietet dem Team einen Ort, an dem es ein Inventar, dessen Verbindungsdaten und die von mehreren Playbooks benötigten Variablen wiederverwenden kann. Eine Aufgabe kann als Formular für einen Kollegen, als geplanter Wartungsvorgang oder als Schritt eines Provisionierungsworkflows verfügbar sein. GitLab bietet eigene wiederverwendbare Pipeline-Konfigurationen und Variablen mit engerer Anbindung an Merge Requests, Artefakte und Deployment-Umgebungen. Der Unterschied liegt im Konfigurationsmodell rund um die Automatisierung und nicht darin, ob eines der Produkte einen Wartungsbefehl ausführen kann.

Funktionsvergleich

Betrachten Sie den gesamten Lebenszyklus einer Umgebung: bereitstellen, Hosts konfigurieren, ein Release deployen und anschließend weiter warten. Derselbe Code kann an mehreren dieser Schritte beteiligt sein. Was sich ändert, ist die Art, wie die Plattform Ziele und Zugangsdaten wiederverwendet, Eingaben erfasst, die Arbeit ausführt und das Ergebnis mit der nächsten Aktion verbindet.

Installation und Einrichtung

Ein gemeinsam genutzter Automatisierungsdienst braucht einen Host, eine Datenbank und einen Upgrade-Prozess. Diese Anforderungen zählen auch dann, wenn die Arbeit eine nächtliche Sicherung statt eines Anwendungsbuilds ist.

UnterstütztTeilweise unterstütztNicht unterstützt
Installation und Einrichtung: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Selbst gehostete Bereitstellung Ja Ja
Native Linux-Pakete Ja Ja
Nativer Windows-Server Ja NeinDer unterstützte Server läuft unter Linux
Kubernetes-Bereitstellung JaHelm-Chart JaHelm-Chart oder Operator

GitLab.com bietet Git-Hosting, CI/CD und die umgebende Plattform als verwalteten Dienst. Bei Self-Managed GitLab umfassen Installationen mit Linux-Paketen, Docker und Kubernetes mehrere zusammenarbeitende Dienste wie PostgreSQL, Redis und Hintergrund-Worker. Ein Team, das GitLab bereits betreibt, kann diese Installation für Automatisierung nutzen, ohne einen weiteren Webdienst hinzuzufügen.

Semaphore UI kann als eigenständiges Binärprogramm, natives Linux-Paket, Docker-Container oder Kubernetes-Deployment mit Anwendungsdienst und Datenbank laufen. Native Server-Binärdateien gibt es außerdem für macOS, Windows und FreeBSD. Ein Team, das nur eine Automatisierungsoberfläche benötigt, erhält damit eine kleinere Anwendung, die es neben seinem vorhandenen Git-Host bereitstellen kann.

Server- und Worker-Plattformen sind getrennte Entscheidungen. GitLab Runner kann unter anderem unter Windows und macOS laufen, obwohl der unterstützte Self-Managed-GitLab-Server auf Linux läuft. Ansible benötigt für die Ausführung eine unterstützte Steuerungsumgebung wie Linux, WSL oder einen Linux-Runner, auch wenn der Webdienst von Semaphore UI unter Windows läuft.

Automatisierungswerkzeuge und IaC

Provisionierung, die Konfiguration von Hosts und die Wartung von Diensten nutzen oft unterschiedliche Werkzeuge. Der Unterschied liegt darin, wie jede Operation vorbereitet und wiederverwendet wird, und nicht darin, ob eine Shell deren Befehl aufrufen kann.

UnterstütztTeilweise unterstütztNicht unterstützt
Automatisierungswerkzeuge und IaC: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Ansible-Playbooks JaTask Template JaBefehl in einem Pipeline-Job
Terraform/OpenTofu JaTask Template JaBefehl in einem Pipeline-Job
Terragrunt JaTask Template JaBefehl in einem Pipeline-Job
Bash JaTask Template JaBefehl in einem Pipeline-Job
PowerShell JaTask Template JaBefehl in einem Pipeline-Job
Python JaTask Template JaBefehl in einem Pipeline-Job
Integrierter Terraform-State-Speicher JaProHTTP-Backend JaHTTP-Backend, auch in Free

GitLab-Jobs führen in Pipeline-YAML definierte Befehle aus und verwenden Werkzeuge, die auf dem Runner installiert oder in einem Container-Image enthalten sind. Ansible, Terraform/OpenTofu und Terragrunt können daher Teil derselben Pipeline wie Tests und Deployments oder einer eigenständigen Wartungspipeline sein. GitLab dokumentiert außerdem OpenTofu-Komponenten und Infrastrukturworkflows für Änderungen, die über Merge Requests geprüft werden.

Semaphore UI gibt Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell und Python jeweils eigene Task Templates. Ingenieure wählen Repository, Werkzeugeinstellungen, Zugangsdaten und gemeinsame Variablen in der Oberfläche, während der Automatisierungscode in Git bleibt. Eine Terraform-Provisionierungsaufgabe oder Python-Bereitschaftsprüfung kann unabhängig, nach Zeitplan oder innerhalb eines Workflows laufen. Das passt zu Teams, die gemeinsame Starteinstellungen in Semaphore UI pflegen und vorbereitete Vorgänge über die Oberfläche bereitstellen möchten. Pipeline-YAML ist sinnvoll, wenn Änderungen an der Orchestrierung selbst, einschließlich Jobreihenfolge und Konfiguration, Code-Review und Versionshistorie benötigen.

Für die Provisionierung ergänzt Semaphore UI Pro ein HTTP-State-Backend mit Workspaces, Versionshistorie und Verwaltung in der Oberfläche. Gemeinsamer Terraform/OpenTofu State kann bei den vorbereiteten IaC-Vorgängen bleiben, statt einen weiteren Dienst zu benötigen. Von GitLab verwalteter Terraform/OpenTofu State ist in Free verfügbar und unterstützt ebenfalls ein HTTP-Backend und Locking. Bestehende externe Backends bleiben bei beiden Produkten eine Option. Die standardmäßigen plan- und apply-Befehle von Semaphore UI deaktivieren Locking, sofern sie nicht überschrieben werden. Die Backend-Unterstützung allein aktiviert es daher nicht für diese Ausführungen.

Repositories müssen nicht umziehen, nur um Semaphore UI einzuführen. Ein Projekt kann mehrere Git-Repositories mit eigenen URLs, Branches und Zugangsdaten registrieren und in jeder Vorlage das passende auswählen. GitLab CI/CD arbeitet ebenfalls mit externen Git-Hosts: Die Integration externer Repositories in Premium und Ultimate erstellt ein gespiegeltes GitLab-Projekt. Pipeline-Konfiguration kann unter einem anderen Pfad, in einem anderen Projekt oder an einer externen YAML-URL liegen. Ein Job kann ein weiteres Repository ausdrücklich klonen. GitLab-Pipelines gehören weiterhin zu einem GitLab-Projekt. Ein Betriebsprojekt in Semaphore UI kann somit neben den vorhandenen Git-Hosts des Teams bestehen, während GitLab eine Option für Auslieferungs- und Wartungspipelines bleibt.

Gespeicherte Operationen und Zeitpläne

Ein Dienst-Neustart, eine Zertifikatserneuerung oder ein Anwendungs-Release sollte die eigene Konfiguration behalten. Kolleginnen und Kollegen wählen dann die Operation aus, geben die wechselnden Eingaben an und führen sie manuell oder nach Zeitplan aus.

UnterstütztTeilweise unterstütztNicht unterstützt
Gespeicherte Operationen und Zeitpläne: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Jobdefinitionen ohne CI/CD-YAML JaTask-Template-Formular NeinPipeline-YAML erforderlich
Eingabeformulare beim Start JaPflichtfelder, Ganzzahlprüfung und Auswahlmöglichkeiten JaTypisierte Eingaben, Auswahlmöglichkeiten und Regex-Validierung
Gemeinsam genutzte Variablen JaVariablengruppen JaGruppen- und Projektvariablen
Geplante Ausführungen Ja Ja
Build-Versionen und Auswahl des Deployments JaVerknüpfte Build- und Deploy-Vorlagen JaPipeline-Jobs und Artefakt-/Versionsverweise
Gespeicherte Repository-Verbindungen JaBenannte Projekt-Repositories, die von Vorlagen wiederverwendet werden JaProjekt-Repository und CI/CD-Konfiguration

GitLab definiert Jobs in Pipeline-YAML. Sein Pipeline-Editor validiert und visualisiert diese Konfiguration, und sein Pipeline Wizard erzeugt eine Konfigurationsdatei, die in ein Repository eingecheckt wird. Das Task-Template-Formular von Semaphore UI speichert einen Vorgang durch Auswahl von Werkzeug, Repository, Inventar und Variablengruppen, ohne CI/CD-YAML-Definition. Das betrifft die Art, wie Ingenieure die gespeicherte Prozedur pflegen. Beide Produkte können vorhandene Jobs manuell mit Eingaben oder nach Zeitplan starten, ohne für jede Ausführung einen neuen Commit zu benötigen.

GitLab-Pipeline-Eingaben sind in YAML deklarierte typisierte Parameter mit Standardwerten, erlaubten Auswahlwerten und Regex-Validierung. CI/CD-Variablen auf Gruppen- und Projektebene stellen wiederverwendbare Konfiguration bereit, einschließlich Umgebungsbereichen. Ein Kollege liefert diese Eingaben beim Start der vorbereiteten Pipeline. Der Pipeline-Zeitplan stellt die Konfiguration für unbeaufsichtigte Ausführungen bereit.

Semaphore UI hält die wiederverwendbare Konfiguration im Task Template, im gewählten Inventar und in Variablengruppen. Eingabeformulare stellen Startwerte mit Pflichtfeldern, Ganzzahlprüfungen und vordefinierten Auswahlmöglichkeiten bereit. Die konfigurierbaren Regex-Regeln von GitLab bieten sie nicht. Ein Ingenieur kann beispielsweise einen Dienstvorgang mit Auswahlfeldern für Dienstname, gewünschten Zustand und Umgebung vorbereiten. Der Kollege füllt das Formular aus, startet die Aufgabe und liest Status und Ausgabe. Das Playbook implementiert die angeforderte Aktion. Die gemeinsamen Ressourcen liefern Repository, Hosts und Verbindungsdaten.

Semaphore UI verbindet außerdem Build- und Deploy-Vorlagen. Ein Build erfasst eine Version, und ein Deployment wählt eine erfolgreiche Build-Version aus oder startet nach einem erfolgreichen Build automatisch. Die Automatisierung veröffentlicht und lädt das Paket oder Image aus dem vom Team gewählten Speicher. GitLab bildet dieses Release durch Pipeline-Jobs, Artefaktverweise und Deployment-Umgebungen ab, mit integrierten Test- und Auslieferungsnachweisen.

Dieselbe Einrichtung unterstützt unbeaufsichtigte Arbeit. Eine Vorlage zur Zertifikatsprüfung kann jede Nacht auf dem Inventar der Umgebung laufen und einen Fehler melden, wenn das Playbook ein bald ablaufendes Zertifikat findet. Ein Cron-Ausdruck wie 0 2 * * * plant sie täglich um 02:00 in der konfigurierten Zeitzone des Schedulers, standardmäßig UTC. Einmalige Zeitpläne decken geplante Wartungsfenster ab. GitLab kann das entsprechende Playbook ebenfalls über seinen Pipeline-Zeitplan und konfigurierte Eingaben planen.

Inventar

Die Host-Wartung setzt eine wiederverwendbare Definition der Ziele und ihrer Verbindungseinstellungen voraus. Ein Patch-Durchlauf, ein Backup und eine Zertifikatsprüfung können diese Definition gemeinsam nutzen.

UnterstütztTeilweise unterstütztNicht unterstützt
Inventar: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Wiederverwendbare Ansible-Inventories JaIn der UI verwaltete Inventarressourcen JaInventardateien und Plugins in Jobs
Dynamische Host-Erkennung JaAnsible-Inventarplugins JaAnsible-Inventarplugins im Job ausführen
Host-Auswahl beim Start JaEingabeaufforderung für Ansible limit JaPipeline-Eingabe an Ansible limit übergeben

Semaphore UI macht ein Inventar zu einer benannten Projektressource, die Vorlagen gemeinsam nutzen können. Es kann bearbeitbares INI/YAML enthalten, eine Datei in Git referenzieren oder Ansibles dynamische Inventarplugins verwenden. Das ausgewählte Inventar hält außerdem die Referenzen auf Host-Zugangsdaten und optionale sudo-Zugangsdaten, sodass eine Änderung der Zielkonfiguration nicht das Bearbeiten jeder einzelnen Wartungsoperation erfordert.

GitLab kann dieselben Ansible-Dateien und Discovery-Plugins verwenden. Ein Job lädt das Inventar aus seinem Repository oder einer anderen konfigurierten Quelle, installiert das erforderliche Discovery-Plugin und übergibt ausgewählte Eingaben an Ansible. Beide können Hosts über Cloud-APIs oder andere Systeme ermitteln, die von den installierten Ansible-Plugins unterstützt werden. Der Unterschied bei Semaphore UI liegt im wiederverwendbaren Inventarobjekt und den Verbindungseinstellungen in der Bedienoberfläche.

Bei einer Wiederherstellungsaufgabe auf einem einzelnen Server grenzt ein zugelassenes Ansible-Limit die Ausführung ein, ohne ein neues Inventar anzulegen. Damit werden Hosts innerhalb einer Aufgabe ausgewählt, statt den gesamten Bestand automatisch auf unabhängige Jobs aufzuteilen. Ein Inventar in Git ist bei beiden Produkten sinnvoll, wenn Änderungen geprüft werden sollen.

Ausführung

Die Ausführung muss das Zielnetzwerk mit den richtigen Abhängigkeiten erreichen. Die Platzierung der Worker und die Isolierung pro Job sind unabhängig davon, wie der Webserver installiert ist.

UnterstütztTeilweise unterstütztNicht unterstützt
Ausführung: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Fernausführung JaRunners JaGitLab Runner
Containerisierte Jobs JaProDocker-Executor JaDocker-Executor
Kubernetes-Job-Pods JaEnterprise JaKubernetes-Executor
Runner-Routing JaProRunner-Tags JaRunner-Tags
Projektgebundene Ausführungs-Worker JaProDem Projekt zugewiesene Runner JaProjekt-Runner

GitLab Runner führen Jobs mit Shell-, Docker- oder Kubernetes-Executors aus. Semaphore UI kann auf seinem Anwendungsserver oder einem Runner in der Nähe der verwalteten Systeme ausführen. Beide ermöglichen die Ausführung innerhalb eines privaten Netzwerks, während die gemeinsame Oberfläche an einem anderen Ort bleibt.

GitLab unterstützt projektspezifische Runner und tagbasiertes Job-Routing. Semaphore UI Pro ergänzt projektgebundene Runner, tagbasiertes Routing und Docker-Ausführung pro Aufgabe. Enterprise ergänzt die Kubernetes-Aufgabenausführung. Mit diesen Einstellungen wählt ein Team Ausführungskapazität mit der benötigten Konnektivität und den erforderlichen Abhängigkeiten. Den Anwendungsserver in einem Container zu installieren bleibt eine andere Entscheidung als die Wahl einer Container-Laufzeit für jeden Job.

Workflows

Einen Host zu provisionieren, ihn zu konfigurieren und seinen Dienst zu überprüfen verbindet mehrere gespeicherte Operationen. Fehler und Freigabepunkte bestimmen, ob der nächste Schritt ausgeführt werden soll.

UnterstütztTeilweise unterstütztNicht unterstützt
Workflows: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Graphbasierte Workflow-Bearbeitung JaGespeicherte Vorlagen visuell verbinden NeinYAML bearbeiten, resultierenden Graphen anzeigen
Erfolgs- und Fehlerzweige JaVisuelle Workflow-Verbindungen JaErfolgs-/Fehlerjobs und needs-Abhängigkeiten
Für eine manuelle Entscheidung pausieren JaWorkflow-Genehmigung JaBlockierender manueller Job
Separate Genehmigungsberechtigung Nein JaPremiumDeployment-Genehmigungen für geschützte Umgebungen
Werte zwischen Jobs übergeben Ja JaDotenv-Berichtsartefakte
Dateien zwischen Jobs TeilweiseSpeicherung und Übertragung konfigurieren JaJobartefakte
Wiederverwendbare mehrstufige Komponenten TeilweiseTasks wiederverwenden, die Abfolge neu aufbauen JaCI/CD-Komponenten

Semaphore-UI-Workflows verbinden gespeicherte Vorgänge, wenn eine Prozedur mehrere Werkzeuge umfasst. Eine OpenTofu-Aufgabe kann eine Umgebung erstellen, eine Ansible-Aufgabe deren Hosts konfigurieren und eine Python-Aufgabe sie in einem anderen System registrieren. Erfolgs- und Fehlerzweige bestimmen den nächsten Schritt. Eine Genehmigung kann den Ablauf vor einer Änderung pausieren. Die Vorlagen bleiben für spätere Wartung separat verfügbar. Eine Diagnose erfordert somit nicht, die gesamte Provisionierungsprozedur erneut abzuspielen.

Im Workflow-Editor von Semaphore UI verbindet ein Ingenieur gespeicherte Vorlagen und konfiguriert ihre Erfolgs- oder Fehlerpfade in einem Graphen. Der Pipeline-Editor von GitLab bearbeitet und validiert YAML und visualisiert anschließend die resultierenden Jobs und needs-Abhängigkeiten. Die Visualisierung hilft bei der Prüfung der Prozedur, während Änderungen an ihren Verbindungen Änderungen an der Pipeline-Konfiguration bleiben. Das zählt, wenn Bediener bestehende Prozeduren visuell zusammenstellen möchten, statt ihre Orchestrierung in YAML zu pflegen.

GitLab kann berechnete Werte wie eine bereitgestellte Version oder Umgebungs-URL über dotenv-Berichtsartefakte an spätere Jobs übergeben. Komplexes JSON oder mehrzeilige Daten verwenden stattdessen ein gewöhnliches Dateiartefakt. Bei Provisionierung und Konfiguration können strukturierte Werte zwischen Semaphore-UI-Aufgaben weitergegeben werden. Eine Terraform/OpenTofu-Ausgabe mit einer neuen Hostadresse kann beispielsweise zur Eingabe des nächsten Vorgangs werden. In 2.20 umfasst die Erfassung Ansible set_stats, Terraform/OpenTofu/Terragrunt-Ausgaben und JSON aus Bash, PowerShell oder Python mit dem lokalen Executor auf dem Server oder einem entfernten Runner. Docker- und Kubernetes-Executors für Aufgaben erzeugen diese Workflow-Ausgaben nicht. Die empfangende Vorlage deklariert die Eingabe, die ihr Playbook oder ihre Inventarkonfiguration anschließend zur Ansprache des neuen Hosts verwendet.

GitLab kann in jedem Tarif eine Pipeline mit einem blockierenden manuellen Job pausieren. Setzen Sie when: manual mit allow_failure: false, da optionale manuelle Jobs die Pipeline nicht blockieren. Deployment-Genehmigungen in Premium und Ultimate ergänzen unabhängig zugewiesene Genehmigungsanforderungen für geschützte Umgebungen. Workflow-Genehmigungen in Semaphore UI 2.20 folgen der Berechtigung zur Ausführung von Projektaufgaben. Eine separate Genehmigerrolle ist für 2.21 angekündigt. Nutzen Sie GitLabs Genehmigungen für geschützte Umgebungen, wenn diese unabhängig verwaltete Genehmigungsgrenze erforderlich ist.

Dateien benötigen einen anderen Weg. Ein kompiliertes Paket oder gespeicherter Terraform-Plan muss dort gespeichert werden, wo der nächste Vorgang ihn abrufen kann, oder ausdrücklich übertragen werden. Die Jobartefakte von GitLab decken diesen Teil einer Auslieferungspipeline bereits ab. Wenn Semaphore UI das Deployment übernimmt, kann seine Automatisierung das veröffentlichte Artefakt anhand der von CI gelieferten Version oder des Digests abrufen. So bleiben GitLabs Build-Nachweise erhalten, während die anschließenden Hostvorgänge Inventare, Zugangsdaten und Ausführungshistorie von Semaphore UI nutzen.

GitLab-CI/CD-Komponenten bündeln versionierte, wiederverwendbare Pipeline-Konfiguration, einschließlich Jobsequenzen. Semaphore UI verwendet einzelne Task Templates wieder. Die Sequenz wird in jedem Workflow definiert und kann nicht als ein verschachtelter Workflow eingefügt werden. Komponenten sind wertvoll, wenn viele Auslieferungspipelines einen gepflegten mehrstufigen Prozess teilen müssen. Das Modell von Semaphore UI ist nützlich, wenn Teams vor allem die zugrunde liegenden Vorgänge wiederverwenden und sie für Provisionierung, Deployment oder Wiederherstellung unterschiedlich verbinden.

Zugriffskontrolle und Anmeldung

Die Person, die eine vorbereitete Operation ausführt, muss nicht die Person sein, die sie ändert. Projektberechtigungen, engere Ausführungsrechte und Anmeldekontrollen lösen jeweils unterschiedliche Teile dieser Delegation.

UnterstütztTeilweise unterstütztNicht unterstützt
Zugriffskontrolle und Anmeldung: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
RBAC auf Projektebene JaProjektrollen JaGruppen- und Projektrollen
Ausführen ohne Projektadministration JaTask Runner JaDeveloper-Rolle, darf auch Code pushen
Kontrollen für die Deployment-Ausführung JaEnterpriseVorlagenberechtigungen JaPremiumGeschützte Umgebungen
LDAP-Anmeldung JaPro JaSelf-Managed
Anmeldung über OpenID Connect JaPro JaSelf-Managed
Multi-Faktor-Authentifizierung JaProLokales TOTP oder Identity Provider JaLokaler Authenticator oder Passkey

GitLab verwendet Gruppen- und Projektrollen mit zusätzlichen Kontrollen für geschützte Branches und Umgebungen. Die Standardrolle Developer kann Pipelines ausführen und auch Code in nicht geschützte Branches pushen. Für reinen Deployment-Zugriff ohne diese Codebeitragsrechte unterstützen Premium und Ultimate eingeladene Gruppen mit Reporter-Rolle und Zugriff auf eine geschützte Umgebung. Teams, die Vorgänge über GitLab delegieren, konfigurieren diese Deployment-Grenze ausdrücklich.

Semaphore UI gibt einem Betriebsteam eine eigene Projektgrenze um Vorlagen, Inventare, Repositories, Zugangsdaten und Variablengruppen. Community trennt bereits Projektadministration und Ausführung: Task Runners können Projektvorlagen starten und haben auf die anderen Ressourcen nur Lesezugriff. Ingenieure pflegen die vorbereitete Konfiguration, während Kollegen die im Projekt bereitgestellten Prozeduren ausführen.

Benutzerdefinierte Rollen und Berechtigungen auf Vorlagenebene in Enterprise grenzen das weiter ein. Ein Supportkollege kann die Basisrolle Guest und zusätzlich eine benutzerdefinierte Rolle mit Ausführungsrecht für eine bestimmte Neustartvorlage erhalten, statt projektweiten Task-Runner-Zugriff. Inventar, Zugangsdaten und Startoptionen bereitet der Ingenieur vor. Das ist sinnvoll, wenn die delegierte Aktion enger gefasst ist als die Mitgliedschaft im gesamten Betriebsprojekt.

Das Formular ist die Schnittstelle zur Prozedur und kein Ersatz für deren Zugriffsregeln. Automatisierungscode und erlaubte Überschreibungen beim Start müssen den Vorgang auf seine vorgesehenen Ziele begrenzen. Vorlagenberechtigungen in Semaphore UI bieten keine getrennten Inventar- und Zugangsdatenberechtigungen für beliebige Kombinationen von Ressourcen.

GitLab Self-Managed unterstützt LDAP und OpenID Connect. GitLab bietet außerdem Zwei-Faktor-Authentifizierung auf Kontoebene. Semaphore UI Pro bietet lokales TOTP und unterstützt LDAP und OIDC. Die zentrale Identitätsverwaltung prüft, wer sich anmeldet. Projektrollen und Vorlagenberechtigungen bestimmen weiterhin, welche Vorgänge diese Person ausführen darf.

Secrets

Ein Operator sollte die vorbereitete Verbindung auswählen, anstatt immer wieder Passwörter in die Starteingaben einzufügen. Vorhandene Vaults können diese Verbindungen liefern, ohne zu Job-Parametern zu werden.

UnterstütztTeilweise unterstütztNicht unterstützt
Secrets: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Gespeicherte Secrets JaKey Store und geheime Variablen JaMaskierte oder ausgeblendete Variablen
HashiCorp Vault JaPro JaPremiumKonfiguriertes Job-Secret
AWS Secrets Manager JaEnterprise JaPremiumKonfiguriertes Job-Secret
Azure Key Vault JaEnterprise JaPremiumKonfiguriertes Job-Secret
Externe OpenBao-Secrets JaProKey Store-Integration JaCLI-Abruf im Job konfiguriert
Devolutions Server-Zugangsdaten JaEnterpriseKey Store-Integration JaCredential-API-Aufruf im Job konfiguriert
CyberArk-Secrets JaEnterpriseSpeicherung über die PVWA-REST-API JaCCP-Abruf in einem Ansible-Job

GitLab-Jobs nutzen CI/CD-Variablen, die maskiert oder ausgeblendet werden können. Integrationen für externe Secrets in Premium fordern Werte von Diensten wie HashiCorp Vault, AWS Secrets Manager, Azure Key Vault und Google Cloud Secret Manager an. GitLab 19.5 bietet außerdem einen OpenBao-basierten Secrets Manager für Premium und Ultimate, der bei Online-Lizenzen über GitLab Credits und bei Offline-Self-Managed-Lizenzen über ein Add-on abgerechnet wird. Jobs fordern dessen Secrets ausdrücklich an. Der Zugriff wird durch konfigurierte Berechtigungen gesteuert und in Audit-Ereignissen erfasst.

Der Key Store von Semaphore UI unterscheidet SSH-Schlüssel von Zugangsdaten mit Benutzername und Passwort, einschließlich Passwörtern und Zugriffstokens. Ein Repository wählt seine Checkout-Zugangsdaten, ein Ansible-Inventar die Host- und optionalen sudo-Zugangsdaten, und die Vorlage kann ein Ansible-Vault-Passwort verwenden. Diese Beziehungen gehören zum gespeicherten Vorgang. Ein Kollege, der ein Zertifikat erneuert oder eine Dienstaufgabe startet, muss daher nicht jedes Verbindungsgeheimnis in das Eingabeformular kopieren.

Für Teams mit einem bestehenden Vault integriert Semaphore UI Pro HashiCorp Vault und OpenBao. Enterprise ergänzt AWS Secrets Manager, Azure Key Vault und Devolutions Server. Für dasselbe Deployment liefert GitLab Secrets über Jobvariablen oder konfigurierte Secret-Integrationen. Semaphore UI verknüpft Zugangsdatenreferenzen mit Repositories, Inventaren und Vorlagen. Bediener verwenden beim Start somit die vorbereiteten Verbindungen wieder. Wo eine native Integration den benötigten Dienst nicht abdeckt, kann auch ein Befehl ein Secret direkt abrufen. Diesen Abruf konfiguriert und pflegt das Team.

Für OpenBao und Devolutions Server bietet Semaphore UI benannte Key-Store-Integrationen in Pro beziehungsweise Enterprise. GitLab-Jobs können einen OpenBao-Wert über dessen CLI oder einen Devolutions-Credentials-Eintrag über dessen API abrufen. Das Team pflegt Authentifizierung, Abruf und Übergabe im Job, statt eine gespeicherte Key-Store-Verbindung auszuwählen. Das ist ein praktikabler Weg, wenn der bestehende Vault und der Jobcode die Prozedur bereits abdecken.

Semaphore UI Enterprise integriert CyberArk über die PVWA REST API. Ein GitLab-Job mit Ansible kann CyberArk-Zugangsdaten über die Collection cyberark.pas und den Central Credential Provider abrufen. Die Collection und die Anwendungsauthentifizierung werden dabei in der Job-Laufzeit konfiguriert. Beide nutzen unterschiedliche CyberArk-Schnittstellen. Die Integration muss daher zu dem CyberArk-Dienst passen, den das Team betreibt.

Logs und Audit

Nach dem Patchen oder einem Deployment benötigt das Team sowohl die Ausführungsergebnisse als auch eine Aufzeichnung darüber, wer die Operation geändert oder gestartet hat. Diese Aufzeichnungen beantworten unterschiedliche Fragen.

UnterstütztTeilweise unterstütztNicht unterstützt
Logs und Audit: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Ausführungsverlauf und Logs Ja Ja
Darstellung der Ansible-Ergebnisse JaProIntegrierte Host-/Task-Zusammenfassung JaKonfigurierter Ansible-JUnit-Callback und Veröffentlichung von Berichten
Administrativer Audit-Verlauf JaAufzeichnung aktivieren, Administratoransicht JaPremiumAudit-Ereignisse für Projekte und Gruppen
SIEM Weiterleitung JaProTLS-Syslog oder Splunk HEC JaUltimateStreaming von Gruppen-Audit-Ereignissen

Semaphore UI speichert Aufgabenstatus, Startdetails, Repository-Revision und Ausgabe. Pro ergänzt eine integrierte Ansible-Übersicht nach Hosts und Aufgaben, mit der sich eine fehlgeschlagene bestandsweite Prüfung leichter bis zu den betroffenen Hosts verfolgen lässt. GitLab speichert Jobprotokolle und kann Ansible-Ergebnisse über konfigurierte JUnit-Berichtsartefakte anzeigen. Testberichte fließen auch in die Merge-Request- und Pipeline-Ansichten ein, was sinnvoll ist, wenn Infrastrukturprüfungen Teil eines Code-Reviews sind.

Für Zugriffsprüfungen und Vorfallanalysen protokolliert Semaphore UI bei aktiviertem Audit-Logging Authentifizierung, Ressourcenänderungen und Aufgabenaktivität. Die Audit-Ansicht für Administratoren ist in jeder Edition projektübergreifend. GitLab Premium und Ultimate bieten Audit-Seiten für Gruppen und Projekte. Die Kontohistorie in Free erfasst erfolgreiche Anmeldungen. Audit-Berechtigungen und Ereignistypen in GitLab richten sich nach Gruppen-, Projekt- und Instanzbereich.

Semaphore UI Pro ergänzt Filter, CSV- oder JSONL-Export und die Weiterleitung über TLS Syslog oder Splunk HEC. GitLab Ultimate streamt Gruppen-Audit-Ereignisse als JSON an externe Ziele. Beide können ein Security Information and Event Management (SIEM) speisen. Ereignisse und Umfang unterscheiden sich jedoch von gewöhnlicher Jobausgabe.

Integrationen

Ein Release-Ereignis oder ein Monitoring-System kann eine vorbereitete Operation starten und ihr Ergebnis an das Team senden. Aufschlussreich ist der Vergleich, wie viel dieser Verbindung im Produkt selbst konfiguriert wird.

UnterstütztTeilweise unterstütztNicht unterstützt
Integrationen: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
Jobs per API starten und einsehen Ja Ja
Eingehende Webhook-Trigger JaRequest-Matcher und Wert-Extraktoren JaWebhook zum Auslösen einer Pipeline
Chat-Benachrichtigungen JaSlack, Teams, Telegram und weitere Kanäle JaProjektintegrationen für Benachrichtigungen

Semaphore UI bietet eine authentifizierte Aufgaben-API und eingehende Integrationsendpunkte. Matcher filtern eine Anfrage, und Extractors ordnen Header oder Felder des Anfrageinhalts den Aufgabeneingaben zu. GitLab stellt Pipeline-Trigger-APIs und Webhook-URLs bereit, die eine Pipeline für einen Branch oder Tag starten. Seine Projektintegrationen verbinden Auslieferungsereignisse außerdem mit Issue-Trackern und externen Diensten. Ein Monitoring-Alarm kann dadurch eine vorbereitete Diagnose ohne neuen Code-Commit starten.

Semaphore UI enthält Benachrichtigungskanäle für E-Mail, Slack, Microsoft Teams, Telegram, Rocket.Chat, DingTalk und Gotify. Vorlagen und Projektalarme legen fest, wohin Ergebnisse gesendet werden. GitLab bietet Projektintegrationen wie Microsoft-Teams-Benachrichtigungen, Pipeline-Status-E-Mails und seine Slack-App. Ein Benachrichtigungslink hilft Kollegen, eine Ausführung zu prüfen, stellt selbst aber keine Genehmigung aus dem Chat heraus dar.

KI-gestützte Automatisierung

Ein Coding-Assistent kann dabei helfen, eine Operation vorzubereiten oder einen fehlgeschlagenen Durchlauf zu untersuchen, und zwar anhand dokumentierter APIs, Konfigurationsbeispiele und der relevanten Ausgabe.

UnterstütztTeilweise unterstütztNicht unterstützt
KI-gestützte Automatisierung: GitLab und Semaphore UI
Kriterien Semaphore UI GitLab
MCP-Zugriff JaCommunity-Connector JaGitLab-MCP-Server

Beide Produkte bieten öffentliche Dokumentation und APIs, die Assistenten wie Claude Code und Codex beim Entwerfen von Konfigurationen oder Analysieren von Jobausgaben nutzen können. GitLab-Pipeline-YAML liefert dem Assistenten die Auslieferungskonfiguration. Die API von Semaphore UI stellt dagegen den gespeicherten Vorgang und seine Projektressourcen bereit. Das unterstützt Einrichtung und Fehlersuche, macht generierte Änderungen aber nicht automatisch korrekt.

GitLab 19.5 enthält einen allgemein verfügbaren MCP-Server. Die verfügbaren Werkzeuge hängen vom Zugriff und den lizenzierten Funktionen ab. Semaphore UI hat einen Community-MCP-Connector für seine API und hat offizielle MCP-Unterstützung für Pro in Version 2.21.0 angekündigt. Der Zugriff des Connectors richtet sich nach dem bereitgestellten Konto und den Zugangsdaten. Ein Assistent sollte deshalb einen zum Vorgang passenden Berechtigungsumfang erhalten.

Lizenzierung und Support

GitLab deckt die Entwicklungsplattform rund um die Automatisierung ab. Semaphore UI liefert einen fokussierten Dienst für deren Ausführung. Der wirtschaftliche Vergleich hängt davon ab, welche dieser Aufgaben das Team einkaufen und betreiben muss, einschließlich bereits vorhandener Systeme.

Open-Source- und kommerzielle Optionen

GitLab Community Edition steht unter der MIT-Lizenz. Enterprise Edition enthält separat lizenzierte kommerzielle Funktionen. Die Tarife Free, Premium und Ultimate decken unterschiedliche Anforderungen ab. Deployment-Genehmigungen und die dokumentierten nativen Integrationen für externe Secrets erfordern Premium. Von GitLab verwalteter Terraform/OpenTofu State ist in Free verfügbar. Gehostete Angebote enthalten Kontingente für Rechenleistung und Speicher. Selbst verwaltete Runner verwenden dagegen Infrastruktur des Teams.

Semaphore UI Community steht unter der MIT-Lizenz und deckt grundlegende Vorlagen, Projektrollen, Zeitpläne und Workflows ab. Pro und Enterprise ergänzen Funktionen innerhalb derselben Produktfamilie. Alle aktuellen Semaphore-UI-Tarife sind selbst gehostet. Hat ein Team bereits einen Git-Host und benötigt einen Ansible- und IaC-Dienst, bleibt der neue Dienst damit auf den Betrieb von Automatisierung konzentriert, statt nur für diese Jobs eine umfassendere Entwicklungsplattform einzuführen.

Kostenpflichtige Funktionen und Support

Semaphore UI Pro ergänzt das hier besprochene State-Backend, Projekt-Runner und Docker-Ausführung pro Aufgabe. Enterprise ergänzt Kubernetes-Aufgabenausführung, benutzerdefinierte Rollen und Vorlagenberechtigungen. Die Wahl der Edition folgt dem benötigten Ausführungs- und Delegationsmodell und nicht der Annahme, jeder Bediener brauche eine erweiterte Kontrolle.

GitLab Free enthält keinen technischen Support. Premium und Ultimate umfassen Herstellersupport mit Reaktionszielen entsprechend der Auswirkung des Supportfalls. Semaphore UI Community bietet Hilfe nach bestem Bemühen, Pro enthält Herstellersupport zu Geschäftszeiten, und Enterprise bietet individuelle Supportzusagen sowie Unterstützung bei Einführung, Konfiguration, Upgrades und Migration. Vergleichen Sie den tatsächlichen Tarif und Vertrag für die betriebene Umgebung.

Wartung und Verantwortung

Für dieselbe Deployment- oder Wartungsprozedur hält GitLab Befehle, Reihenfolge und Konfigurationsverweise in Pipeline-YAML. Semaphore UI speichert Werkzeugeinstellungen, Inventar, Zugangsdaten und Variablengruppen bei wiederverwendbaren Task Templates. Werden diese Vorgänge nach Semaphore UI verlagert, kann ihre CI-Konfiguration ersetzt werden, während Automatisierungscode und Reviews in GitLab bleiben. Die Jobs in GitLab zu belassen ist sinnvoll, wenn dessen Starteingaben, Berechtigungen und Ausführungsmodell bereits zu den Bedienern passen.

Auswahlkriterien

Wählen Sie nach den Personen, die die Automatisierung nutzen, und den Ressourcen, die die Plattform für sie organisieren soll. Befehle ausführen können beide. Der größere Unterschied liegt darin, ob die umgebende Arbeit eine Auslieferungspipeline, ein vorbereiteter Infrastrukturvorgang oder beides ist.

Wann GitLab CI/CD wählen?

Wählen Sie GitLab CI/CD, wenn die Automatisierung eng mit dem Entwicklungs- und Review-Prozess verbunden bleiben soll.

  • Code-Review, Tests und Artefakte bilden eine Kette. Infrastruktur- und Anwendungsänderungen werden in Merge Requests geprüft. Pipeline-Ergebnisse und Deployment-Nachweise bleiben damit verbunden.
  • Pipeline-Komponenten und Umgebungskontrollen sind unverzichtbar. Viele Projekte teilen versionierte Jobsequenzen, oder Deployments beruhen auf Genehmigungsregeln für geschützte Umgebungen.
  • Die bestehenden Pipelines unterstützen Bediener wirksam. Ihre Eingaben, Zeitpläne, Runner und Zugriffskontrollen decken die Wartungsarbeit bereits ohne separate Oberfläche ab.

Wann sollte man Semaphore UI wählen?

Wählen Sie Semaphore UI, wenn das Teilen und Betreiben von Infrastrukturautomatisierung ein eigener Bedarf ist, auch wenn der Code in GitLab bleibt.

  • Ansible-Inventare und Zugangsdaten werden täglich wiederverwendet. Patching, Diagnosen, Zertifikatsarbeit und Deployments teilen Zielumgebungen, statt jeweils eine eigene Jobkonfiguration zu erfordern.
  • Kollegen benötigen vorbereitete Vorgänge. Ingenieure pflegen Vorlagen und gemeinsame Konfiguration. Bediener verwenden Eingabeformulare, Zeitpläne und die Aufgabenhistorie. Community-Projektrollen ermöglichen die gemeinsame Ausführung, Enterprise ergänzt Berechtigungen für bestimmte Vorlagen.
  • Die Prozedur umfasst mehrere Automatisierungswerkzeuge. Direkte Vorlagen für Terraform/OpenTofu, Terragrunt, Bash, PowerShell und Python verbinden sich mit Ansible-Vorgängen in einem Workflow und bleiben unabhängig wiederverwendbar.
  • Der Dienst soll in die vorhandene Infrastruktur passen. Installationsmöglichkeiten als Binärprogramm, Paket oder Docker-Container lassen das Team die Betriebsoberfläche neben seinem bestehenden Git-Dienst hosten und Runner in der Nähe privater Systeme platzieren.

Semaphore UI zusammen mit GitLab CI/CD verwenden

Für ein Anwendungsrelease kann GitLab den Code prüfen, Tests ausführen und ein Container-Image oder versioniertes Paket veröffentlichen. Ein Pipeline-Job sendet anschließend diesen unveränderlichen Artefaktverweis über die authentifizierte Aufgaben-API an eine vorbereitete Deployment-Vorlage in Semaphore UI. Semaphore UI verwendet sein gespeichertes Inventar, seine Zugangsdaten und Variablen für das Deployment über einen Runner mit Zugriff auf die Zielumgebung. Die Deployment-Automatisierung lädt das Artefakt aus der Registry oder dem Repository des Teams.

Der GitLab-Job muss die zurückgegebene Aufgaben-ID behalten, den endgültigen Aufgabenstatus prüfen und auf das Pipeline-Ergebnis abbilden. Die Annahme einer Startanfrage reiht die Aufgabe lediglich ein. Ein eingehender Webhook kann ebenfalls einen Vorgang auslösen. Die Abschlussmeldung implementiert die Integration. Das ist eine vom Team über APIs aufgebaute Verbindung und keine automatische bidirektionale Deployment-Integration.

Nach dem Release können Kollegen Semaphore UI für Diagnosen oder einen Dienstneustart verwenden, während eine Vorlage zur nächtlichen Zertifikatsprüfung weiter nach Zeitplan läuft. Diese Vorgänge nutzen die vorbereitete Infrastrukturkonfiguration unabhängig von einem neuen Commit. GitLab behält Code-Reviews, Testberichte und Artefakthistorie, während Semaphore UI die tägliche Oberfläche für die laufende Umgebung bereitstellt.

FAQ

Kann GitLab CI/CD Ansible und Infrastrukturwartung ausführen?

Ja. Jobs können Ansible, Terraform/OpenTofu und andere Kommandozeilenwerkzeuge in ihrer Runner-Umgebung aufrufen. Sie können ohne neuen Commit manuell oder nach Zeitplan laufen. Semaphore UI ergänzt ein anderes Konfigurationsmodell mit werkzeugspezifischen Vorlagen, gemeinsamen Inventaren, Zugangsdaten und Variablengruppen.

Können Playbooks bei Verwendung von Semaphore UI in GitLab bleiben?

Ja. Verbinden Sie das vorhandene GitLab-Repository, konfigurieren Sie seine Checkout-Zugangsdaten und wählen Sie anschließend Playbook und Inventar in einem Semaphore-UI-Task-Template. GitLab kann weiterhin Code-Reviews übernehmen, während Semaphore UI den vorbereiteten Vorgang ausführt.

Welches Produkt kann Terraform/OpenTofu State speichern?

Von GitLab verwalteter State ist in Free verfügbar. Semaphore UI Pro bietet ein HTTP-State-Backend mit Workspaces und Verwaltung in der Oberfläche. Beide können auch Code mit einem externen Backend ausführen. Konfigurieren Sie Locking und die Verarbeitung gespeicherter Pläne für den tatsächlichen Ausführungsprozess, statt beides aus dem Vorhandensein eines State-Backends abzuleiten.

Erfordert delegierte Ausführung Semaphore UI Enterprise?

Nicht für die gewöhnliche gemeinsame Projektausführung. Community enthält eine Task-Runner-Rolle, die Vorlagen in ihrem Projekt starten kann und auf andere Ressourcen nur lesend zugreift. Enterprise ergänzt benutzerdefinierte Rollen und Vorlagenberechtigungen, wenn ein Kollege nur ausgewählte Vorgänge ausführen dürfen soll.

Kann eine GitLab-Pipeline auf ein Semaphore-UI-Deployment warten?

Ja, über eine vom Team implementierte Integration. Starten Sie die vorbereitete Aufgabe mit der authentifizierten API, behalten Sie ihre Aufgaben-ID, prüfen Sie ihren Status und melden Sie das Endergebnis an GitLab. Eine erfolgreich angenommene Startanfrage belegt nicht, dass das Deployment abgeschlossen ist.

War dieser Artikel hilfreich?

Quellen

  1. GitLab, “GitLab Secrets Manager credit usage and licensing”. URL: https://docs.gitlab.com/ci/secrets/secrets_manager/credit_usage/ (abgerufen am: ).
  2. GitLab, “GitLab Secrets Manager”. URL: https://docs.gitlab.com/ci/secrets/secrets_manager/ (abgerufen am: ).
  3. Semaphore UI, “Semaphore UI build and deploy templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates/build-deploy (abgerufen am: ).
  4. Semaphore UI, “Semaphore UI automation applications”. URL: https://semaphoreui.com/docs/user-guide/apps (abgerufen am: ).
  5. Semaphore UI, “Semaphore UI task templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates (abgerufen am: ).
  6. Semaphore UI, “Semaphore UI installation methods”. URL: https://semaphoreui.com/docs/admin-guide/installation (abgerufen am: ).
  7. Semaphore UI, “Semaphore UI runners”. URL: https://semaphoreui.com/docs/admin-guide/runners (abgerufen am: ).
  8. Semaphore UI, “Semaphore UI workflow nodes and data passing”. URL: https://semaphoreui.com/docs/user-guide/workflows (abgerufen am: ).
  9. Semaphore UI, “Semaphore UI Terraform HTTP backend”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/states (abgerufen am: ).
  10. Semaphore UI, “Semaphore UI project roles and template permissions”. URL: https://semaphoreui.com/docs/user-guide/team (abgerufen am: ).
  11. Semaphore UI, “Semaphore UI Key Store”. URL: https://semaphoreui.com/docs/user-guide/key-store (abgerufen am: ).
  12. Semaphore UI, “Semaphore UI Variable Groups”. URL: https://semaphoreui.com/docs/user-guide/environment (abgerufen am: ).
  13. Semaphore UI, “Semaphore UI schedules”. URL: https://semaphoreui.com/docs/user-guide/schedules (abgerufen am: ).
  14. Semaphore UI, “Semaphore UI webhook integrations”. URL: https://semaphoreui.com/docs/user-guide/integrations (abgerufen am: ).
  15. Semaphore UI, “Semaphore UI Community, Pro and Enterprise”. URL: https://semaphoreui.com/pricing (abgerufen am: ).
  16. Semaphore UI, “Semaphore UI inventories”. URL: https://semaphoreui.com/docs/user-guide/inventory (abgerufen am: ).
  17. Semaphore UI, “Semaphore UI 2.20 candidate Terraform execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/TerraformApp.go (abgerufen am: ).
  18. Semaphore UI, “Semaphore UI 2.20 candidate runner output handling”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/runners/job_pool.go (abgerufen am: ).
  19. GitLab, “GitLab 19.5 release notes”. URL: https://docs.gitlab.com/releases/19/gitlab-19-5-released/ (abgerufen am: ).
  20. GitLab, “GitLab CI/CD pipelines”. URL: https://docs.gitlab.com/ci/pipelines/ (abgerufen am: ).
  21. GitLab, “GitLab Runner executors”. URL: https://docs.gitlab.com/runner/executors/ (abgerufen am: ).
  22. GitLab, “Install GitLab”. URL: https://about.gitlab.com/install/ (abgerufen am: ).
  23. GitLab, “GitLab CI/CD inputs”. URL: https://docs.gitlab.com/ci/inputs/ (abgerufen am: ).
  24. GitLab, “GitLab CI/CD variables”. URL: https://docs.gitlab.com/ci/variables/ (abgerufen am: ).
  25. GitLab, “GitLab scheduled pipelines”. URL: https://docs.gitlab.com/ci/pipelines/schedules/ (abgerufen am: ).
  26. GitLab, “GitLab deployment approvals”. URL: https://docs.gitlab.com/ci/environments/deployment_approvals/ (abgerufen am: ).
  27. GitLab, “GitLab-managed Terraform/OpenTofu state”. URL: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/ (abgerufen am: ).
  28. GitLab, “Infrastructure as Code with OpenTofu and GitLab”. URL: https://docs.gitlab.com/user/infrastructure/iac/ (abgerufen am: ).
  29. GitLab, “GitLab job artifacts”. URL: https://docs.gitlab.com/ci/jobs/job_artifacts/ (abgerufen am: ).
  30. GitLab, “GitLab unit test reports”. URL: https://docs.gitlab.com/ci/testing/unit_test_reports/ (abgerufen am: ).
  31. GitLab, “GitLab roles and permissions”. URL: https://docs.gitlab.com/user/permissions/ (abgerufen am: ).
  32. GitLab, “Use external secrets in GitLab CI/CD”. URL: https://docs.gitlab.com/ci/secrets/ (abgerufen am: ).
  33. GitLab, “GitLab Licensing and Compatibility”. URL: https://docs.gitlab.com/development/licensing/ (abgerufen am: ).
  34. GitLab, “GitLab pricing and hosting offerings”. URL: https://about.gitlab.com/pricing/ (abgerufen am: ).
  35. GitLab, “GitLab CI/CD components”. URL: https://docs.gitlab.com/ci/components/ (abgerufen am: ).
  36. GitLab, “CI/CD for external repositories”. URL: https://docs.gitlab.com/ci/ci_cd_for_external_repos/ (abgerufen am: ).
  37. GitLab, “GitLab Support”. URL: https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support (abgerufen am: ).
  38. Semaphore UI, “Semaphore UI REST API, task creation and task status”. URL: https://semaphoreui.com/api-docs (abgerufen am: ).
  39. Semaphore UI, “Tasks, execution history and Ansible summaries”. URL: https://semaphoreui.com/docs/user-guide/tasks (abgerufen am: ).
  40. GitLab, “Protected environments”. URL: https://docs.gitlab.com/ci/environments/protected_environments/ (abgerufen am: ).
  41. Semaphore UI, “Get Started, installation methods and server platforms”. URL: https://semaphoreui.com/docs/getting-started (abgerufen am: ).
  42. GitLab, “Installation methods and supported server platforms”. URL: https://docs.gitlab.com/install/install_methods/ (abgerufen am: ).
  43. GitLab, “GitLab Runner requirements and supported platforms”. URL: https://docs.gitlab.com/runner/install/requirements/ (abgerufen am: ).
  44. GitLab, “Pass dotenv variables to specific jobs”. URL: https://docs.gitlab.com/ci/variables/dotenv_variables/ (abgerufen am: ).
  45. GitLab, “CI/CD job logs”. URL: https://docs.gitlab.com/ci/jobs/job_logs/ (abgerufen am: ).
  46. Semaphore UI, “Repositories, reusable Git resources and authentication”. URL: https://semaphoreui.com/docs/user-guide/repositories (abgerufen am: ).
  47. GitLab, “Pipeline editor, YAML editing and validation”. URL: https://docs.gitlab.com/ci/pipeline_editor/ (abgerufen am: ).
  48. GitLab, “Customize pipeline configuration, alternate paths and external YAML”. URL: https://docs.gitlab.com/ci/pipelines/settings/ (abgerufen am: ).
  49. GitLab, “Pipeline Wizard, generated CI configuration and commit step”. URL: https://docs.gitlab.com/development/cicd/pipeline_wizard/ (abgerufen am: ).
  50. Ansible project, “JUnit callback, structured playbook result reports”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/junit_callback.html (abgerufen am: ).
  51. GitLab, “GitLab manual jobs, optional and blocking behavior”. URL: https://docs.gitlab.com/ci/jobs/job_control/ (abgerufen am: ).
  52. GitLab, “GitLab runner tags and project assignment”. URL: https://docs.gitlab.com/ci/runners/configure_runners/ (abgerufen am: ).
  53. Semaphore UI, “Semaphore UI authentication”. URL: https://semaphoreui.com/docs/admin-guide/authentication (abgerufen am: ).
  54. GitLab, “LDAP authentication for GitLab Self-Managed”. URL: https://docs.gitlab.com/administration/auth/ldap/ (abgerufen am: ).
  55. GitLab, “OpenID Connect authentication for GitLab Self-Managed”. URL: https://docs.gitlab.com/administration/auth/oidc/ (abgerufen am: ).
  56. GitLab, “GitLab two-factor authentication”. URL: https://docs.gitlab.com/user/profile/account/two_factor_authentication/ (abgerufen am: ).
  57. GitLab, “HashiCorp Vault integration”. URL: https://docs.gitlab.com/ci/secrets/hashicorp_vault/ (abgerufen am: ).
  58. GitLab, “AWS Secrets Manager integration”. URL: https://docs.gitlab.com/ci/secrets/aws_secrets_manager/ (abgerufen am: ).
  59. GitLab, “Azure Key Vault integration”. URL: https://docs.gitlab.com/ci/secrets/azure_key_vault/ (abgerufen am: ).
  60. Semaphore UI, “Semaphore UI audit history, export and SIEM forwarding”. URL: https://semaphoreui.com/docs/admin-guide/audit-log (abgerufen am: ).
  61. GitLab, “GitLab audit events and edition scope”. URL: https://docs.gitlab.com/user/compliance/audit_events/ (abgerufen am: ).
  62. GitLab, “GitLab audit event streaming”. URL: https://docs.gitlab.com/user/compliance/audit_event_streaming/ (abgerufen am: ).
  63. Semaphore UI, “Semaphore UI notification channels”. URL: https://semaphoreui.com/docs/admin-guide/notifications (abgerufen am: ).
  64. GitLab, “Pipeline trigger API and incoming webhooks”. URL: https://docs.gitlab.com/ci/triggers/ (abgerufen am: ).
  65. GitLab, “GitLab project integrations and notifications”. URL: https://docs.gitlab.com/user/project/integrations/ (abgerufen am: ).
  66. Community connector contributors, “Community MCP connector for Semaphore UI”. URL: https://github.com/cloin/semaphore-mcp (abgerufen am: ).
  67. GitLab, “GitLab MCP server”. URL: https://docs.gitlab.com/user/model_context_protocol/mcp_server/ (abgerufen am: ).
  68. OpenBao project, “OpenBao CLI, read a secret”. URL: https://openbao.org/docs/commands/kv/get/ (abgerufen am: ).
  69. Devolutions, “Devolutions Server REST API, credential retrieval”. URL: https://docs.devolutions.net/server/web-interface/utilities/api-documentation (abgerufen am: ).
  70. GitLab, “GitLab conditional jobs and pipeline dependencies”. URL: https://docs.gitlab.com/ci/yaml/ (abgerufen am: ).
  71. GitLab, “GitLab Jobs API, status and logs”. URL: https://docs.gitlab.com/api/jobs/ (abgerufen am: ).
  72. Semaphore UI, “Semaphore UI CyberArk PVWA secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/cyberark (abgerufen am: ).
  73. CyberArk collection maintainers, “CyberArk collection, CCP credential retrieval”. URL: https://docs.ansible.com/projects/ansible/latest/collections/cyberark/pas/cyberark_credential_module.html (abgerufen am: ).

Vergleich des Semaphore UI Teams auf Grundlage der oben aufgeführten Dokumentation, Repositories und Produktinformationen. Das Abrufdatum ist für jede Quelle angegeben.