Github-gehostete Runner für Unternehmen
Konfigurieren eines Proxys für Linux- und Windows-Runner
Wenn Ihr Läufer über einen Proxyserver kommunizieren muss, können Sie Proxyeinstellungen mithilfe von Umgebungsvariablen oder Konfigurationen auf Systemebene konfigurieren.
| Variable | Description | Example |
|---|---|---|
https_proxy | Proxy-URL für HTTPS-Datenverkehr. Sie können bei Bedarf die Standardauthentifizierung einschließen. | http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.local |
http_proxy | Proxy-URL für HTTP-Datenverkehr. Sie können bei Bedarf die Standardauthentifizierung einschließen. | http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.local |
no_proxy | Eine durch Trennzeichen getrennte Liste von Hosts oder IP-Adressen, die den Proxy umgehen sollten. Einige Clients berücksichtigen nur IP-Adressen, wenn Verbindungen direkt mit der IP und nicht mit einem Hostnamen hergestellt werden. | example.comexample.com,myserver.local:443,example.org |
Die Proxyumgebungsvariablen werden gelesen, wenn die Läuferanwendung gestartet wird. Daher müssen Sie die Umgebungsvariablen festlegen, bevor Sie die Läuferanwendung konfigurieren oder starten. Wenn sich Ihre Proxykonfiguration ändert, müssen Sie die Läuferanwendung neu starten.
Auf Windows-Rechnern sind die Namen der Proxy-Umgebungsvariablen unabhängig von der Groß-/Kleinschreibung. Auf Linux- und macOS-Rechnern wird empfohlen, alle Umgebungsvariablen in Kleinbuchstaben zu schreiben. Wenn eine Umgebungsvariable sowohl in Kleinbuchstaben als auch in Großbuchstaben unter Linux oder macOS vorhanden ist (z. B. https_proxy und HTTPS_PROXY), verwendet die selbstgehostete Runneranwendung die Umgebungsvariable in Kleinbuchstaben.
Die Verbindung zwischen selbstgehosteten Runnern und GitHub verläuft über HTTPS (Port 443).
Beispielkonfigurationen
Hinweis
Um Probleme zu vermeiden, wird empfohlen, bei Umgebungsvariablen unabhängig vom Verhalten des verwendeten Betriebssystems und der verwendeten Shell die Groß-/Kleinschreibung zu beachten.
Linux und macOS
Konfigurieren Sie Proxy-Umgebungsvariablen für Ihren Runner.
export https_proxy=http://proxy.local:8080 export http_proxy=http://proxy.local:8080 export no_proxy=example.com,localhost,127.0.0.1
export https_proxy=http://proxy.local:8080
export http_proxy=http://proxy.local:8080
export no_proxy=example.com,localhost,127.0.0.1
Fenster
Unter Windows können Sie Proxyeinstellungen entweder durch Festlegen von Umgebungsvariablen oder mithilfe des Netsh-Befehls konfigurieren. Der netsh-Ansatz gilt für Anwendungen und Dienste, die auf der WinHTTP-API basieren.
Das Festlegen von Umgebungsvariablen ist für Läufer, die private Netzwerke verwenden, weiterhin erforderlich. Ob Sie netsh auch konfigurieren müssen, hängt von den anwendungen ab, die in Ihren Workflows verwendet werden.
netsh winhttp set advproxy setting-scope=machine settings={\"Proxy\":\"proxy.local:8080\",\"ProxyBypass\":\"168.63.129.16;169.254.169.254\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false}
netsh winhttp set advproxy setting-scope=machine settings={\"Proxy\":\"proxy.local:8080\",\"ProxyBypass\":\"168.63.129.16;169.254.169.254\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false}
Verwenden Sie setting-scope=machine beim Konfigurieren dieser Konfiguration während der benutzerdefinierten Imagegenerierung, um sicherzustellen, dass die Proxyeinstellungen nach neustarten und während der VM-Imageerstellung beibehalten werden.
Beständiges Erstellen von Proxyeinstellungen
Wenn Sie diese Umgebungsvariablen während der benutzerdefinierten Imagegenerierung festlegen, stellen Sie sicher, dass die Konfiguration über Neustarts oder Imageneuerstellungen hinweg beibehalten wird.
Linux und macOS
Schreiben Sie die Variablen in /etc/environment.
echo 'http_proxy=http://proxy.local' >> /etc/environment
Fenster
Legen Sie die systemweiten Umgebungsvariablen fest.
[Environment]::SetEnvironmentVariable("http_proxy", "http://proxy.local", "Machine")
[Environment]::SetEnvironmentVariable("http_proxy", "http://proxy.local", "Machine")
Konfigurieren eines Proxys für Azure-Runners
Wenn Ihr Runner in Azure gehostet wird, entweder als selbst gehosteter Runner oder als von GitHub bereitgestellter größerer Runner mit privatem Netzwerk, müssen Sie möglicherweise einen Proxy konfigurieren, um ausgehende Verbindungen zu GitHub-Diensten zuzulassen und gleichzeitig die Netzwerkisolation aufrechtzuerhalten.
Sie sollten Ihrer no_proxy Liste Azure-Metadaten- und Verwaltungs-IPs hinzufügen, um sicherzustellen, dass der Läufer auf erforderliche Azure-Dienste zugreifen kann. Diese Endpunkte ermöglichen Azure-VMs das Abrufen von Konfigurations- und Identitätsinformationen, die für den ordnungsgemäßen Betrieb erforderlich sind.
Die beiden Azure-IPs sind:
- 168.63.129.16 (siehe Azure IP-Adresse 168.63.129.16 Übersicht)
- 169.254.169.254 (siehe Azure Instance Metadata Service)
Eine .env-Datei zur Proxykonfiguration verwenden
Hinweis
Die Verwendung einer .env Datei zum Festlegen der Proxykonfiguration kann nicht auf einem von GitHub gehosteten Runner erfolgen.
Auf selbstgehosteten Runners können Sie die Proxyeinstellungen konfigurieren, indem Sie die Variablen zu einer .env Datei im Anwendungsverzeichnis des selbstgehosteten Runners hinzufügen (das Verzeichnis, in das Sie die Runner-Software heruntergeladen und entpackt haben). Dieser Ansatz ist nützlich, wenn der Runner so konfiguriert ist, dass er als Dienst unter einem Systemkonto ausgeführt wird. Beim Start des Runners liest er die in .env festgelegten Variablen für die Proxy-Konfiguration.
Beispiel .env-Proxykonfiguration
https_proxy=http://proxy.local:8080 no_proxy=example.com,myserver.local:443
https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443
Festlegen der Proxy-Konfiguration für Docker-Container
Wenn Du Docker-Container-Aktionen oder Service-Container in Deinen Workflows verwendest, musst Du möglicherweise zusätzlich zur Einstellung der oben genannten Umgebungsvariablen auch Docker so konfigurieren, dass er Deinen Proxy-Server verwendet.
Weitere Informationen zur erforderlichen Docker-Konfiguration findest du in der Docker-Dokumentation unter Konfigurieren von Docker zum Verwenden eines Proxyservers.