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.