Skip to main content

Problembehandlung bei GitHub Actions für Ihr Unternehmen

Behandlung von Problemen, die häufig bei Verwendung von GitHub Actions in GitHub Enterprise Server auftreten

Wer kann dieses Feature verwenden?

Site administrators can troubleshoot GitHub Actions issues and modify GitHub Enterprise Server configurations.

Überprüfung des Zustands von GitHub Actions

Du kannst die Integrität von GitHub Actions auf Ihre GitHub Enterprise Server-Instance mit dem Befehlszeilen-Hilfsprogramm ghe-actions-check überprüfen. Weitere Informationen findest du unter Befehlszeilenwerkzeuge und Auf die Verwaltungsshell (SSH) zugreifen.

Konfigurieren von selbstgehosteten Runnern bei Verwendung eines selbstsignierten Zertifikats für GitHub Enterprise Server

Es wird dringend empfohlen, TLS für GitHub Enterprise Server mit einem Zertifikat zu konfigurieren, das von einem vertrauenswürdigen Aussteller signiert ist. Ein selbst signiertes Zertifikat kann zwar funktionieren, erfordert jedoch zusätzliche Konfiguration für deine selbstgehosteten Runner und wird für Produktionsumgebungen nicht empfohlen. Weitere Informationen findest du unter TLS konfigurieren.

Installieren des Zertifikats auf dem Runnercomputer

Damit ein selbstgehosteter Runner mithilfe eines selbstsignierten Zertifikats eine Verbindung mit einem GitHub Enterprise Server herstellen kann, musst du das Zertifikat auf dem Runnercomputer installieren, damit die Verbindung gehärtet ist.

Die zur Installation eines Zertifikats erforderlichen Schritte findest du in der Dokumentation für das Betriebssystem des Runners.

Konfigurieren von Node.js für die Verwendung des Zertifikats

Die meisten Aktionen werden in JavaScript geschrieben und mithilfe von Node.js ausgeführt, wobei Node.js nicht den Zertifikatspeicher des Betriebssystems verwendet. Damit die selbstgehostete Runneranwendung das Zertifikat verwendet, musst du die Umgebungsvariable NODE_EXTRA_CA_CERTS auf dem Runnercomputer festlegen.

Sie können die Umgebungsvariable als Systemumgebungsvariable festlegen oder sie in einer Datei namens .env im selbstgehosteten Runner-Anwendungsverzeichnis deklarieren (d. h. dem Verzeichnis, in das Sie die Runner-Software heruntergeladen und entpackt haben).

Zum Beispiel:

NODE_EXTRA_CA_CERTS=/usr/share/ca-certificates/extra/mycertfile.crt

Umgebungsvariablen werden gelesen, wenn die selbstgehostete Runneranwendung gestartet wird. Daher musst du die Umgebungsvariable festlegen, bevor du die Runneranwendung konfigurierst oder startest. Wenn sich deine Zertifikatkonfiguration ändert, musst du die selbstgehostete Runneranwendung neu starten.

Konfigurieren von Docker-Containern für die Verwendung des Zertifikats

Wenn du Docker-Containeraktionen oder Dienstcontainer in deinen Workflows verwendest, musst du das Zertifikat möglicherweise auch in deinem Docker-Image installieren und zusätzlich die oben genannte Umgebungsvariable festlegen.

Konfigurieren von HTTP-Proxyeinstellungen für GitHub Actions

Wenn Sie einen HTTP-Proxyserver auf GitHub konfiguriert haben:

  • Sie müssen .localhost, 127.0.0.1 und ::1 zu der HTTP-Proxy-Ausschlussliste hinzufügen (in dieser Reihenfolge).
  • Wenn dein externer Speicherort nicht routingfähig ist, musst du der Ausschlussliste auch die URL zu deinem externen Speicher hinzufügen.

Weitere Informationen zum Ändern deiner Proxyeinstellungen findest du unter Konfigurieren eines ausgehenden Webproxyservers.

Wenn diese Einstellungen nicht ordnungsgemäß konfiguriert sind, erhältst du möglicherweise Fehler, z. B. Resource unexpectedly moved to https://IP-ADDRESS beim Festlegen oder Ändern deiner GitHub Actions-Konfiguration.

Runner, die keine Verbindung zu GitHub Enterprise Server mit einem neuen Hostnamen herstellen

Warnung

Ändere den Hostnamen für GitHub Enterprise Server nach der Ersteinrichtung nicht mehr. Das Ändern des Hostnamens wird zu unerwartetem Verhalten führen, bis hin zu Instanzausfällen und der Ungültigkeit der Sicherheitsschlüssel der Benutzer. Wenn Sie den Hostnamen für Ihre Instanz geändert haben und Probleme auftreten, wenden Sie sich an GitHub Enterprise-Support oder GitHub Premium-Support.

Wenn du GitHub Enterprise Server in deiner Umgebung mit einem neuen Hostnamen bereitstellst und der alte Hostname nicht mehr zu deiner Instanz aufgelöst wird, können selbstgehostete Runner keine Verbindung mit dem alten Hostnamen herstellen und keine Aufträge ausführen.

Du musst die Konfiguration deiner selbstgehosteten Runner auf den neuen Hostnamen für Ihre GitHub Enterprise Server-Instance aktualisieren. Jeder selbstgehostete Runner erfordert eine der folgenden Vorgehensweisen:

  • Bearbeite im Verzeichnis der selbstgehosteten Anwendung die .runner- und .credentials-Dateien, und ersetze alle Erwähnungen des alten Hostnamens durch den neuen. Starte anschließend die selbstgehostete Runneranwendung neu.
  • Entferne den Runner über die Benutzeroberfläche aus GitHub Enterprise Server, und füge ihn erneut hinzu. Weitere Informationen findest du unter Selbst-gehostete Runner entfernen und Selbst-gehostete Runner hinzufügen.

Problembehandlung von Fehlern, wenn Dependabot bestehende Workflows auslöst

Nachdem Sie Updates für DependabotIhre GitHub Enterprise Server-Instance eingerichtet haben, kann es zu Fehlern kommen, wenn vorhandene Workflows durch Dependabot-Ereignisse ausgelöst werden.

Standardmäßig werden GitHub Actions Workflow-Ausführungen, die durch Dependabot von push, pull_request, pull_request_review oder pull_request_review_comment-Ereignissen ausgelöst werden, so behandelt, als ob sie aus einem Repository-Fork geöffnet worden wären. Im Gegensatz zu Workflows, die von anderen Akteuren ausgelöst werden, bedeutet dies, dass sie ein schreibgeschütztes GITHUB_TOKEN erhalten und keinen Zugriff auf Geheimnisse haben, die normalerweise verfügbar sind. Dies führt dazu, dass alle Workflows, die versuchen, in das Repository zu schreiben, fehlschlagen, wenn sie durch Dependabotausgelöst werden.

Es gibt drei Möglichkeiten, dieses Problem zu beheben:

  1. Sie können Ihre Workflows so aktualisieren, dass sie nicht länger durch Dependabot ausgelöst werden, und dazu einen Ausdruck wie diesen verwenden: if: github.actor != 'dependabot[bot]'. Weitere Informationen finden Sie unter Auswerten von Ausdrücken in Workflows und Aktionen.
  2. Du kannst deine Workflows so ändern, dass sie einen zweistufigen Prozess mit pull_request_target verwenden, das nicht diesen Einschränkungen unterliegt. Weitere Informationen finden Sie unter Fehlerbehebung für Dependabot in GitHub Actions.
  3. Sie können Workflows bereitstellen, die durch den Zugriff auf Geheimnisse über Dependabot ausgelöst werden, und dem Ausdruck permissions ermöglichen, den Standardbereich von GITHUB_TOKEN zu erweitern. Weitere Informationen findest du unter Bereitstellen von Workflows, die durch den Dependabot -Zugriff auf Secrets und erhöhte Berechtigungen ausgelöst werden unten.

Bereitstellen von Workflows, die durch den Dependabot-Zugriff auf Geheimnisse und erhöhte Berechtigungen ausgelöst werden

  1. Melde dich mit SSH bei der Verwaltungsshell an. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

  2. Um die Einschränkungen für Workflows aufzuheben, die von Dependabot für Ihre GitHub Enterprise Server-Instance ausgelöst werden, führe den folgenden Befehl aus.

    ghe-config app.actions.disable-dependabot-enforcement true
    
  3. Wende die Konfiguration an.

    ghe-config-apply
    
  4. Kehre zu GitHub Enterprise Server zurück.

Problembehandlung gebündelter Aktionen in GitHub Actions

Wenn beim Installieren von GitHub Actions in GitHub Enterprise Server der folgende Fehler gemeldet wird, können Sie das Problem beheben, indem Sie die offiziellen gebündelten Aktionen und Workflowvorlagen installieren.

A part of the Actions setup had problems and needs an administrator to resolve.

Gehen Sie wie folgt vor, um die offiziellen gebündelten Aktionen und Workflowvorlagen in einer bestimmten Organisation in GitHub Enterprise Server zu installieren.

  1. Geben Sie eine Organisation an, in der die offiziellen gebündelten Aktionen und Workflowvorlagen gespeichert werden sollen. Du kannst eine neue Organisation erstellen oder eine vorhandene verwenden.

  2. Melde dich mit SSH bei der Verwaltungsshell an. Weitere Informationen finden Sie unter Auf die Verwaltungsshell (SSH) zugreifen.

  3. Um deine Organisation als Speicherort für gebündelte Aktionen festzulegen, verwende den Befehl ghe-config aus, indem du ORGANIZATION durch den Namen deiner Organisation ersetzt.

    ghe-config app.actions.actions-org ORGANIZATION
    

    und:

    ghe-config app.actions.github-org ORGANIZATION
    
  4. Um die gebündelten Aktionen zu deiner Organisation hinzuzufügen, lösche den SHA-Wert.

    ghe-config --unset 'app.actions.actions-repos-sha1sum'
    
  5. Wende die Konfiguration an.

    ghe-config-apply
    

Nachdem du diese Schritte ausgeführt hast, kannst du die Konfiguration von GitHub Actions unter Erste Schritte mit GitHub Actions für GitHub Enterprise Server fortsetzen.