Skip to main content

Utilisation de serveurs proxy avec un exécuteur

Vous pouvez configurer des exécuteurs dans des environnements isolés pour utiliser un serveur proxy pour des communications sécurisées avec GitHub.

Remarque

Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server.

Configuration d’un proxy pour les exécuteurs Linux et Windows

Si votre exécuteur doit communiquer via un serveur proxy, vous pouvez configurer des paramètres proxy à l’aide de variables d’environnement ou de configurations au niveau du système.

VariableDescriptifExample
https_proxyURL du proxy pour le trafic HTTPS. Vous pouvez inclure l’authentification de base si nécessaire.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxyURL du proxy pour le trafic HTTP. Vous pouvez inclure l’authentification de base si nécessaire.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxyListe séparée par des virgules d’hôtes ou d’adresses IP qui doivent contourner le proxy. Certains clients respectent uniquement les adresses IP lorsque les connexions sont effectuées directement à l’adresse IP plutôt qu’à un nom d’hôte.example.com
example.com,myserver.local:443,example.org

Les variables d’environnement proxy sont lues au démarrage de l’application d’exécution. Vous devez donc définir les variables d’environnement avant de configurer ou de démarrer l’application d’exécuteur. Si votre configuration de proxy change, vous devez redémarrer l’application d’exécuteur.

Sur les machines Windows, les noms des variables d'environnement proxy sont insensibles à la casse. Sur les machines Linux et macOS, nous vous recommandons d’utiliser toutes les variables d’environnement en minuscules. Si vous avez une variable d’environnement en minuscules et en majuscules sur Linux ou macOS, par exemple https_proxy et HTTPS_PROXY , l’application de l’exécuteur auto-hébergé utilise la variable d’environnement en minuscules.

La connexion entre exécuteurs auto-hébergés et GitHub passe via HTTP (port 80) ou HTTPS (port 443). Pour garantir la connectivité via HTTPS, configurez le protocole TLS pour GitHub Enterprise Server. Pour plus d’informations, consultez « Configuration de TLS ».

Exemples de configurations

Remarque

Pour éviter les problèmes, il est recommandé de traiter les variables d’environnement comme sensibles à la casse, quel que soit le comportement du système d’exploitation et de l’interpréteur de commandes que vous utilisez.

Linux et macOS

Définissez des variables d’environnement proxy pour votre exécuteur.

Shell
export https_proxy=http://proxy.local:8080
export http_proxy=http://proxy.local:8080
export no_proxy=example.com,localhost,127.0.0.1

Fenêtres

Sur Windows, vous pouvez configurer les paramètres de proxy en définissant des variables d’environnement ou à l’aide de la commande netsh. L’approche netsh s’applique aux applications et services qui s’appuient sur l’API WinHTTP.

La définition des variables d’environnement est toujours requise pour les exécuteurs qui utilisent la mise en réseau privée. Si vous devez également configurer netsh dépend des applications utilisées dans vos flux de travail.

Shell
netsh winhttp set advproxy setting-scope=machine settings={\"Proxy\":\"proxy.local:8080\",\"ProxyBypass\":\"168.63.129.16;169.254.169.254\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false} 

Lors de la configuration de ce paramètre pendant la génération d’images personnalisée, utilisez cette option setting-scope=machine pour vous assurer que les paramètres du proxy persistent après les redémarrages et pendant l’imagerie des machines virtuelles.

Rendre les paramètres de proxy persistants

Lors de la définition de ces variables d’environnement pendant la génération d’images personnalisée, assurez-vous que la configuration persiste entre les redémarrages ou les reconstructions d’images.

Linux et macOS

Écrivez les variables dans /etc/environment.

 echo 'http_proxy=http://proxy.local' >> /etc/environment

Fenêtres

Définissez les variables d’environnement à l’échelle du système.

Shell
[Environment]::SetEnvironmentVariable("http_proxy", "http://proxy.local", "Machine")

Configuration d’un proxy pour les exécuteurs Azure

Si votre exécuteur est hébergé dans Azure, soit en tant qu’exécuteur auto-hébergé, soit en tant qu’exécuteur plus grand hébergé par GitHub déployé avec une mise en réseau privée, vous devrez peut-être configurer un proxy pour autoriser la connectivité sortante aux services GitHub tout en conservant l’isolation du réseau.

Vous devez ajouter des adresses IP de gestion et de métadonnées Azure à votre no_proxy liste pour vous assurer que l’exécuteur peut accéder aux services Azure requis. Ces points de terminaison permettent aux machines virtuelles Azure de récupérer les informations de configuration et d’identité nécessaires pour une opération appropriée.

Les deux adresses IP Azure sont les suivantes :

Utilisation d’un fichier .env pour définir la configuration du proxy

Remarque

L’utilisation d’un .env fichier pour définir la configuration du proxy ne peut pas être effectuée sur un exécuteur hébergé par GitHub.

Sur les exécuteurs auto-hébergés, vous pouvez configurer les paramètres de proxy en ajoutant les variables à un .env fichier dans le répertoire d’application de l’exécuteur auto-hébergé (répertoire dans lequel vous avez téléchargé et décompressé le logiciel d’exécuteur). Cette approche est utile lorsque l’exécuteur est configuré pour s’exécuter en tant que service sous un compte système. Lorsque le processus démarre, il lit les variables définies dans .env pour la configuration du proxy.

Exemple .env configuration du proxy

Shell
https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443

Définition de la configuration du proxy pour des conteneurs Docker

Si vous utilisez des actions de conteneur ou des conteneurs de service Docker dans vos workflows, vous devrez peut-être aussi configurer Docker pour utiliser votre serveur proxy en plus de définir les variables d’environnement ci-dessus.

Pour obtenir des informations sur la configuration Docker requise, consultez « Configurer Docker pour utiliser un serveur proxy » dans la documentation Docker.