Skip to main content

Informationen zu selbstgehosteten Runnern

Du kannst deine eigenen Runner hosten und die Umgebung anpassen, die für die Ausführung von Aufträgen in deinen GitHub Actions-Workflows verwendet wird.

Hinweis: GitHub-gehostete Runner werden auf GitHub Enterprise Server derzeit nicht unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.

Informationen zu selbstgehosteten Runnern

Ein selbstgehosteter Runner ist ein System, das du bereitstellst und verwaltest, um Aufträge von GitHub Actions auf your GitHub Enterprise Server instance auszuführen. Weitere Informationen zu GitHub Actions findest du unter Grundlegendes zu GitHub Actions und Informationen zu GitHub Actions für Unternehmen.

Selbstgehostete Runner bieten folgende Möglichkeiten: Erstellen von benutzerdefinierten Hardwarekonfigurationen für deine Anforderungen in Bezug auf Verarbeitungsleistung oder Arbeitsspeicher für größere Aufträge, Installieren von in deinem lokalen Netzwerk verfügbaren Softwareprogrammen, Auswählen eines Betriebssystems. Selbstgehostete Runner können physisch, virtuell, in einem Container, lokal oder in einer Cloud sein.

Du kannst selbstgehostete Runner auf verschiedenen Ebenen der Verwaltungshierarchie hinzufügen:

  • Runner auf Repositoryebene sind für ein einzelnes Repository vorgesehen.
  • Runner auf Organisationsebene können Aufträge für mehrere Repositorys in einer Organisation verarbeiten.
  • Runner auf Unternehmensebene können mehreren Organisationen innerhalb eines Unternehmenskontos zugewiesen werden.

Your runner machine connects to GitHub using the GitHub Actions self-hosted runner application. Die GitHub Actions Läufer-Anwendung ist Open Source. Du kannst im Runner-Repository mitwirken und Dateiprobleme einreichen. Wenn eine neue Version veröffentlicht wird, aktualisiert sich die Runneranwendung automatisch bei Zuweisung eines Auftrags zum Runner oder innerhalb einer Woche nach der Veröffentlichung, wenn dem Runner keine Aufträge zugewiesen wurden.

Hinweis: Wenn du kurzlebige Runner verwendest und automatische Updates deaktiviert hast, solltest du vor dem Upgraden von zunächst deine selbstgehosteten Runner auf die Version der Runneranwendung upgraden, die deine upgegradete Instanz ausführen wird. Wenn du ein Upgrade für durchführst, bevor du die kurzlebigen Runner upgradest, können deine Runner offline gehen. Weitere Informationen findest du unter Upgraden von GitHub Enterprise Server.

Ein selbstgehosteter Runnerwird automatisch aus GitHub Enterprise Server entfernt, wenn er sich länger als 30 Tage nicht mehr mit GitHub Actions verbunden hat.

Weitere Informationen zum Installieren und Verwenden von selbstgehosteten Runnern findest du unter Hinzufügen von selbstgehosteten Runnern und Verwenden von selbstgehosteten Runnern in einem Workflow.

Unterschiede zwischen von GitHub gehosteten und selbstgehosteten Runnern

Mit Runnern, die mithilfe von GitHub gehostet werden, können deine Workflows schneller und einfacher ausgeführt werden, während selbstgehostete Runner eine hochgradig konfigurierbare Ausführung von Workflows in deiner eigenen benutzerdefinierten Umgebung ermöglichen.

Von GitHub gehostete Runner:

  • Erhalten automatischer Updates für das Betriebssystem, vorinstallierte Pakete und Tools und die selbstgehostete Runneranwendung.
  • Werden von GitHub verwaltet und gepflegt.
  • Bereitstellen einer sauberen Instanz für jede Auftragsausführung.
  • Verwende freie Minuten von deinem GitHub-Plan. Nach Überschreiten der Freiminuten gelten Minutentarife.

Selbstgehostete Runner:

  • Empfange automatische Updates nur für die selbstgehostete Runneranwendung, obwohl du automatische Aktualisierungen des Runners möglicherweise deaktiviert hast. Weitere Informationen zum Steuern von Softwareupdates für selbstgehostete Runner findest du unter Automatische Skalierung mit selbstgehosteten Runnern. Du bist dafür verantwortlich, das Betriebssystem sowie alle weiteren Softwarekomponenten zu aktualisieren.
  • Kann Clouddienste oder lokale Computer verwenden, für die du bereits bezahlst.
  • Können an deine Hardware, das Betriebssystem, Software und Sicherheitsanforderungen angepasst werden.
  • Benötigen keine saubere Instanz für jede Auftragsausführung.
  • Sind in GitHub Actions kostenlos. Du bist jedoch für die Kosten der Wartung deiner Runnercomputer verantwortlich.
  • Können in Gruppen organisiert werden, um den Zugriff auf bestimmte -Workflows, Organisationen und Repositorys zu beschränken. Weitere Informationen findest du unter Verwalten des Zugriffs auf selbstgehostete Runner mithilfe von Gruppen.

Anforderungen für selbst-gehostete Runner-Maschinen

Du kannst jeden Computer als selbstgehosteten Runner verwenden, solange er die folgenden Anforderungen erfüllt:

Automatische Skalierung deiner selbstgehosteten Runner

Du kannst die Anzahl selbstgehosteter Runner in deiner Umgebung als Reaktion auf Webhookereignisse, die du erhältst, automatisch erhöhen oder verringern. Weitere Informationen findest du unter Automatische Skalierung mit selbstgehosteten Runnern.

Usage limits (Nutzungseinschränkungen)

Die Verwendung von GitHub Actions mit selbstgehosteten Runnern unterliegt gewissen Beschränkungen. Die Einschränkungen können sich jederzeit ändern.

  • Workflowlaufzeit: Jede Workflowausführung ist auf 35 Tage begrenzt. Wenn eine Workflow-Ausführung diesen Grenzwert erreicht, wird die Workflow-Ausführung abgebrochen. Dieser Zeitraum umfasst die Ausführungsdauer sowie die Warte- und Genehmigungszeit.
  • Zeit in der Auftragswarteschlange: Jeder Auftrag für selbstgehostete Runner kann maximal 24 Stunden lang in die Warteschlange gestellt werden. Wenn ein selbst-gehosteter Läufer die Ausführung des Auftrags nicht innerhalb dieses Limits startet, wird der Auftrag beendet und kann nicht abgeschlossen werden.
  • API-Anforderungen: Du kannst bis zu 1.000 Anforderungen an die GitHub-API pro Stunde für alle Aktionen in einem Repository ausführen. Wenn die Anzahl der Anforderungen überschritten wird, sind weitere API-Anforderungen erfolglos, was dazu führen kann, dass Aufträge erfolglos sind.
  • Auftragsmatrix: Eine Auftragsmatrix kann maximal 256 Aufträge pro Workflow-Ausführung generieren. Das Limit gilt sowohl für von GitHub Enterprise Server gehostete als auch selbstgehostete Runner. - Workflowausführungswarteschlange – Maximal 500 Workflowausführungen können in einem Intervall von 10 Sekunden pro Repository in die Warteschlange eingereiht werden. Wenn eine Workflowausführung diesen Grenzwert erreicht, wird die Workflowausführung beendet und kann nicht abgeschlossen werden.

Workflowkontinuität für selbstgehostete Runner

Wenn GitHub Actions-Dienste vorübergehend nicht verfügbar sind, wird eine Workflowausführung verworfen, wenn sie nicht innerhalb von 30 Minuten nach dem Auslösen in die Warteschlange gestellt wurde. Wenn beispielsweise ein Workflow ausgelöst wird und die GitHub Actions-Dienste für 31 Minuten (oder länger) nicht verfügbar sind, wird die Workflowausführung nicht verarbeitet.

Unterstützte Architekturen und Betriebssysteme für selbstgehostete Runner

Die folgenden Betriebssysteme werden für die selbstgehostete Runneranwendung unterstützt:

Linux

  • Red Hat Enterprise Linux 7 oder höher
  • CentOS 7 oder höher
  • Oracle Linux 7
  • Fedora 29 oder höher
  • Debian 9 oder höher
  • Ubuntu 16.04 oder höher
  • Linux Mint 18 oder höher
  • openSUSE 15 oder höher
  • SUSE Enterprise Linux (SLES) 12 SP2 oder höher

Windows

  • Windows 7 64-bit
  • Windows 8.1 64-Bit
  • Windows 10 64-Bit
  • Windows Server 2012 R2 64-bit
  • Windows Server 2019 64-bit

macOS

  • macOS 10.13 (High Sierra) oder höher

Architekturen

Die folgenden Prozessorarchitekturen werden für die selbstgehostete Runneranwendung unterstützt:

  • x64: Linux, macOS, Windows
  • ARM64: Linux.
  • ARM32: Linux.

Unterstützte Aktionen auf selbstgehosteten Runnern

Möglicherweise ist zusätzliche Konfiguration erforderlich, um Aktionen von GitHub.com mit GitHub Enterprise Server oder die actions/setup-LANGUAGE-Aktionen mit selbstgehosteten Runnern zu verwenden, die keinen Internetzugang haben. Weitere Informationen findest du unter Verwalten des Zugriffs auf Aktionen aus GitHub.com. Zudem kannst du deinen GitHub Enterprise-Websiteadministratorin kontaktieren.

Kommunikation zwischen selbst-gehosteten Runnern und GitHub Enterprise Server

Der selbstgehostete Runner stellt eine Verbindung mit GitHub Enterprise Server her, um Auftragszuweisungen zu erhalten und neue Versionen der Runneranwendung herunterzuladen. Der selbstgehostete Runner verwendet eine lange HTTP(S) Anfrage, die 50 Sekunden lang eine Verbindung mit GitHub Enterprise Server öffnet. Wird keine Antwort empfangen, wird erfolgt ein Verbindungstimeout, und eine neue lange Anfrage wird erstellt. Die Anwendung muss auf dem Computer ausgeführt werden, um GitHub Actions-Aufträge zu akzeptieren und auszuführen.

Die Verbindung zwischen selbstgehosteten Runnern und GitHub Enterprise Server verläuft über HTTP (Port 80) oder HTTPS (Port 443). Um die Konnektivität über HTTPS sicherzustellen, konfiguriere TLS für your GitHub Enterprise Server instance. Weitere Informationen findest du unter Konfigurieren von TLS.

Es ist nur eine ausgehende Verbindung vom Runner zu your GitHub Enterprise Server instance erforderlich. Es besteht keine Notwendigkeit für eine eingehende Verbindung von your GitHub Enterprise Server instance zum Runner. Damit das Zwischenspeichern funktioniert, muss der Runner mit dem Blobspeicher kommunizieren und Inhalte direkt von diesem herunterladen können.

GitHub Enterprise Server muss eingehende Verbindungen von deinen Runnern über HTTP(S) im Hostnamen und der API-Unterdomäne von your GitHub Enterprise Server instance akzeptieren. Außerdem müssen deine Runner ausgehende Verbindungen mit dem Hostnamen und der API-Unterdomäne von your GitHub Enterprise Server instance über HTTP(S) zulassen.

Selbstgehostete Runner erfordern keinen externen Internetzugriff für ihre Funktionsfähigkeit. Daher kannst du das Netzwerkrouting zur direkten Kommunikation zwischen dem selbstgehosteten Runner und your GitHub Enterprise Server instance nutzen. Du kannst deinem selbstgehosteten Runner zum Beispiel eine private IP-Adresse zuweisen und das Routing so konfigurieren, dass der Datenverkehr an your GitHub Enterprise Server instance gesendet wird, ohne dass der Datenverkehr ein öffentliches Netzwerk durchlaufen muss.

Du kannst auch selbstgehostete Runner auch mit einem Proxyserver verwenden. Weitere Informationen findest du unter Verwenden eines Proxyservers mit selbstgehosteten Runnern.

Weitere Informationen zur Problembehandlung allgemeiner Netzwerkkonnektivitätsprobleme findest du unter Überwachung und Problembehandlung von selbstgehosteten Runnern.

Kommunikation zwischen selbstgehosteten Runnern und GitHub.com

Selbstgehostete Runner müssen keine Verbindung mit GitHub.com herstellen, es sei denn, du hast den automatischen Zugriff auf GitHub.com-Aktionen für your GitHub Enterprise Server instance aktiviert. Weitere Informationen findest du unter Informationen zum Verwenden von Aktionen in deinem Unternehmen.

Wenn du den automatischen Zugriff auf GitHub.com-Aktionen aktiviert hast, wird der selbstgehostete Runner direkt mit GitHub.com verbunden, um Aktionen herunterzuladen. Du musst sicherstellen, dass der Rechner über den entsprechenden Netzwerkzugriff verfügt, um mit den nachfolgend aufgelisteten GitHub-URLs zu kommunizieren.

github.com
api.github.com
codeload.github.com

Hinweis: Einige der oben aufgeführten Domänen werden mithilfe von CNAME-Einträgen konfiguriert. Für bestimmte Firewalls musst du Regeln möglicherweise rekursiv für alle CNAME-Einträge hinzufügen. Beachte, dass sich die CNAME-Einträge in Zukunft ändern können und dass nur die oben aufgeführten Domänen konstant bleiben.

Sicherheit von selbstgehosteten Runnern

Nicht vertrauenswürdige Workflows auf deinem selbstgehosteten Runner stellen erhebliche Sicherheitsrisiken für deine Computer- und Netzwerkumgebung dar, insbesondere wenn deine Computerumgebung auftragsübergreifend bestehen bleibt. Beispiele für Risiken:

  • Schadprogramme, die auf dem Rechner laufen.
  • Ausbruch aus der Runner-Sandbox der Maschine.
  • Der Zugriff auf die Netzwerkumgebung der Maschine wird offengelegt.
  • Unerwünschte oder gefährliche Daten werden dauerhaft auf der Maschine gespeichert.

Weitere Informationen zur Sicherheitshärtung von selbstgehostete Runnern findest du unter Sicherheitshärten für GitHub Actions.

Weitere Informationsquellen