Jobs in mehreren Netzwerken über eine Oberfläche ausführen

Nutzen Sie Projekt-Runner, um getrennte Netzwerke zu erreichen, Ausführungskapazität zu ergänzen und Jobs die benötigten Tools zu geben. Bewahren Sie Task-Historie und Ergebnisse in Semaphore auf.

Ein Ausführungshost passt nicht zu jedem Job

Jobs benötigen unterschiedlichen Netzwerkzugriff, unterschiedliche Tools und Kapazitäten. Werden alle auf dem Anwendungsserver ausgeführt, teilen sie dieselben Grenzen.

Jedem Job die benötigte Umgebung geben

Wählen Sie den Ausführungsort jedes Jobs, stellen Sie seine Tools bereit und erweitern Sie die Kapazität unabhängig vom Semaphore-Server.

Zielsysteme erreichenRunner in der Nähe Ihres Inventars platzieren
Die für den Job benötigten Tools verwendenAusführungsumgebung vorbereiten
Ausführungskapazität ergänzenRunner mit wachsenden Arbeitslasten skalieren

Runner einrichten und Jobs an sie leiten

Wählen, wie jeder Job ausgeführt wird

Ein Runner bestimmt, wo der Job ausgeführt wird. Sein Executor bestimmt, ob er die Hostumgebung verwendet oder in einem Container startet.

Lokal

Direkt auf dem Runner-Host ausführen und die dort installierten Tools und Abhängigkeiten verwenden.

Docker

Führen Sie in Pro Jobs in Containern aus und wählen Sie für jedes Task Template ein Executor-Image.

Kubernetes

Führen Sie in Enterprise Jobs in Kubernetes-Pods mit dem benötigten Image und den erforderlichen Abhängigkeiten aus.

Die von Ihren Jobs benötigte Ausführungsumgebung aufbauen

Den Runner in der Vorlage wählen

Leiten Sie einen vorbereiteten Job anhand eines Tags weiter und wählen Sie sein Executor-Image.

Task-Vorlagen

Auch die Steuerungsebene verfügbar halten

Skalieren Sie Task-Ausführung und Anwendungsverfügbarkeit als getrennte Teile der Bereitstellung.

Hochverfügbarkeit

Ausführung auf Ihre Infrastruktur abstimmen

Ausführung in der Nähe des Inventars platzieren

Führen Sie Automatisierung in der Region oder dem Netzwerk ihrer Ziele aus. Ein Runner kann Zugriff auf ein privates Subnetz bieten, die Entfernung zu verwalteten Systemen verringern oder einem Team eigene Ausführungskapazität geben. Netzwerkplatzierung, Runner-Tags und Executor lösen jeweils einen anderen Teil dieser Einrichtung.

Den Runner die Verbindung aufbauen lassen

Ein Runner verbindet sich mit dem Semaphore-Server und fragt dort Aufgaben ab. Der Server muss keine eingehende Verbindung zum Runner aufbauen. Das ist für Standorte hinter NAT oder in privaten Subnetzen hilfreich, sofern der Runner Semaphore sowie die benötigten Zielsysteme und Quellen erreichen kann.

Umfang und Routing der Aufgaben wählen

Globale Runner stehen projektübergreifend zur Verfügung, während Projekt-Runner einem Projekt gehören. Unterstützte Tags verbinden Vorlagenanforderungen mit Fähigkeiten oder Standorten von Runnern. Einstellungen für Standard-Runner gelten für Tasks ohne Tag-Anforderung. Wenn kein geeigneter Runner verfügbar ist, kann ein Task warten, statt unbemerkt an einem anderen Ort ausgeführt zu werden.

Standort von Ausführungsgrenze trennen

Bei lokaler Ausführung läuft der Prozess im Kontext des Runner-Hosts und nutzt dessen Berechtigungen. Unterstützte Docker- und Kubernetes-Executors schaffen eine Container- oder Pod-Grenze mit eigenen Konfigurations- und Editionsanforderungen. Ihre Mounts, Netzwerke, Berechtigungen und Images bestimmen die tatsächliche Grenze; das Wort Runner allein garantiert keine Isolation.

Ausführungskapazität unabhängig erweitern

Zusätzliche Runner schaffen Kapazität oder Erreichbarkeit, ohne jede Aufgabe auf dem Host der Webanwendung auszuführen. Einstellungen für parallele Aufgaben und Polling beeinflussen das Betriebsverhalten. Fortgeschrittene Muster für einzelne Jobs können Registrierung, Zuweisungs-Hooks und einen Runner kombinieren, der nach dem Job beendet wird. Dafür ist eine zusätzliche Automatisierung dieses Lebenszyklus nötig.

Automatisierung in einem vom Internet getrennten Netzwerk ausführen

Nutzen Sie eine Enterprise-Offline-Lizenz, wenn die Installation in einem geschlossenen Netzwerk arbeiten muss. Halten Sie Semaphore und seine Runner in dieser Umgebung und stellen Sie die benötigten Git-Repositories, Executor-Images und Tool-Abhängigkeiten ohne öffentlichen Netzwerkzugriff bereit.

Die Ausführungsumgebung bewusst wählen

Die lokale Ausführung nutzt die Prozessberechtigungen des Runner-Hosts. Verwenden Sie Docker- oder Kubernetes-Executors, wenn Jobs einen eigenen Container oder Pod benötigen, mit für den Task geeigneten Images, Mounts und Netzwerkeinstellungen.

Zugangsdaten für den Job verfügbar halten

Tasks benötigen die von ihrer Vorlage referenzierten Zugangsdaten und Konfigurationen. Umgebungs- und Dateiquellen im Key Store werden auf dem Semaphore-Server aufgelöst, bevor der Wert zur Ausführung verwendet wird.

FAQ

Was unterscheidet globale Runner und Projekt-Runner?

Globale Runner werden für die gesamte Instanz registriert, während Projekt-Runner einem bestimmten Projekt gehören. Globale verteilte Ausführung ist in allen Tarifen verfügbar; Projektumfang und zugehörige Routing-Funktionen sind gemäß Preisseite in Pro und Enterprise enthalten. Wählen Sie den Umfang nach Betriebsverantwortung und Umgebungszugriff. Ein projektspezifischer Runner ermöglicht eine bewusste Platzierung; was ein ausgeführter Prozess erreichen kann, bestimmt weiterhin seine Laufzeitkonfiguration.

Benötigt der Semaphore-Server eine eingehende Verbindung zu meinem Runner?

Der Runner baut die Verbindung auf, indem er sich mit Semaphore verbindet und nach Arbeit fragt. Das ermöglicht eine Platzierung hinter NAT oder in einem privaten Netzwerk ohne vom Server initiierte eingehende Verbindung zum Runner. Der Runner muss weiterhin den Semaphore-Endpunkt und die von seinen Tasks verwendeten Repositories, Paketquellen, externen Dienste und Ziele erreichen. Prüfen Sie diese Verbindungen einzeln; ausgehende Abfragen beseitigen nicht alle anderen Netzwerkanforderungen.

Wie erreicht ein Task einen Runner mit dem passenden Netzwerk oder den passenden Tools?

Nutzen Sie unterstützte Runner-Tags, Vorlagenanforderungen und Standard-Runner-Einstellungen, um Arbeit einer passenden Ausführungsumgebung zuzuordnen. Benennen Sie Tags nach einer aussagekräftigen Fähigkeit oder einem Standort und halten Sie Verfügbarkeit und Kapazität sichtbar. Ist kein geeigneter Runner bereit, kann ein Task warten. Testen Sie die gewählte Route mit einem ungefährlichen Vorgang und bestätigen Sie den ausführenden Runner in den Task-Details, bevor Sie denselben Weg für Produktionsänderungen nutzen.

Isoliert die Ausführung auf einem entfernten Runner jeden Task?

Nicht von selbst. Ein lokaler Executor läuft im Prozesskontext des Runner-Hosts mit dem dort verfügbaren Zugriff. Eine Docker- oder Kubernetes-Ausführung führt eine andere Grenze ein; Mounts, Berechtigungen, Netzwerk und Image-Inhalte bleiben jedoch entscheidend. Wählen Sie Platzierung und Ausführungsmodus getrennt. Richten Sie die benötigten Abhängigkeiten ein und prüfen Sie den Host-Zugriff, statt Runner oder Container als vollständige Sicherheitsgarantie anzusehen.

Können verschiedene Jobs unterschiedliche Toolchain-Versionen verwenden?

Richten Sie die für jeden Job erforderliche Laufzeitumgebung auf seinem gewählten Ausführungsweg ein. Unterstützte Executor-Image-Einstellungen helfen, einen bestimmten Satz von Ansible-, Terraform-, Python- oder anderen Abhängigkeiten festzulegen, ohne jeden Job auf einem gemeinsamen Host zu ändern. Prüfen Sie installierte Version und Edition auf die jeweiligen Executor-Optionen. Testen Sie anschließend Repository-Zugriff, Pakete und Zielverbindungen in genau dieser Umgebung, nicht nur in einer interaktiven Administratorsitzung.

Machen zusätzliche Runner Semaphore selbst hochverfügbar?

Zusätzliche Runner erweitern oder verlagern die Aufgabenausführung. Sie schaffen keine hochverfügbare Anwendungssteuerung. Anwendungs-HA verwendet mehrere koordinierte Semaphore-Knoten mit der dokumentierten Architektur aus gemeinsamer Datenbank, Redis und Lastverteilung. Beide Funktionen können sich ergänzen, lösen aber unterschiedliche Probleme. Klären Sie vor der Skalierung, ob der Engpass bei Ausführungskapazität, Netzwerkerreichbarkeit oder Zugriff auf UI und API liegt.

Was passiert, wenn kein Runner mit dem erforderlichen Tag online ist?

Der Task wartet, bis ein verfügbarer Runner den Routing-Anforderungen der Vorlage entspricht. Prüfen Sie Runner-Tag, Aktivierung und letzten Verbindungsstatus, danach die Ausführungskapazität. Ein Tag ist eine Auswahlregel. Ein Runner ohne Tag oder mit einem anderen Tag übernimmt diesen Job nicht automatisch.

Kann ich für ein einzelnes Task Template ein Docker-Image wählen?

Ja. Eine Vorlage kann das Standard-Job-Image überschreiben, wenn ihr Runner den Docker-Executor in Pro oder Kubernetes-Executor in Enterprise nutzt. So verwenden Jobs die benötigte Toolchain. Bereiten Sie das Image mit Anwendungen und Abhängigkeiten vor; das Feld ändert das Verhalten lokaler Executors nicht. Vorlagen-Ausführungseinstellungen ansehen.