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.
| Variable | Descriptif | Example |
|---|---|---|
https_proxy | URL du proxy pour le trafic HTTPS. Vous pouvez inclure l’authentification de base si nécessaire. | http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.local |
http_proxy | URL du proxy pour le trafic HTTP. Vous pouvez inclure l’authentification de base si nécessaire. | http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.local |
no_proxy | Liste 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.comexample.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.
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
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.
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}
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.
[Environment]::SetEnvironmentVariable("http_proxy", "http://proxy.local", "Machine")
[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 :
- 168.63.129.16 (voir Présentation de l’adresse IP Azure 168.63.129.16)
- 169.254.169.254 (voir Service de métadonnées d’instance Azure)
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
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
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.