Skip to main content

Enterprise Server 3.20 actualmente está disponible como versión candidata para lanzamiento.

Uso de servidores proxy con un ejecutor

Puede configurar ejecutores en entornos aislados para usar un servidor proxy para una comunicación segura con GitHub.

Nota:

Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server.

Configuración de un proxy para ejecutores de Linux y Windows

Si el ejecutor necesita comunicarse a través de un servidor proxy, puede configurar las opciones de proxy mediante variables de entorno o configuraciones de nivel de sistema.

VariableDescriptionExample
https_proxyDirección URL del proxy para el tráfico HTTPS. Si es necesario, puede incluir la autenticación básica.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxyDirección URL del proxy para el tráfico HTTP. Si es necesario, puede incluir la autenticación básica.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxyLista separada por comas de hosts o direcciones IP que deben omitir el proxy. Algunos clientes solo respetan las direcciones IP cuando se realizan conexiones directamente a la dirección IP en lugar de un nombre de host.example.com
example.com,myserver.local:443,example.org

Las variables de entorno de proxy se leen cuando se inicia la aplicación del ejecutor, por lo que debe establecer las variables de entorno antes de configurar o iniciar la aplicación del ejecutor. Si cambia la configuración del proxy, debe reiniciar la aplicación del ejecutor.

En las máquinas Windows, los nombres de las variables de entorno de proxy no distinguen mayúsculas de minúsculas. En las máquinas Linux y macOS, te recomendamos que uses todas las variables de entorno en minúsculas. Si tiene una variable de entorno en minúsculas y mayúsculas en Linux o macOS, por ejemplo, https_proxy y HTTPS_PROXY, la aplicación del ejecutor autohospedado usa la variable de entorno en minúsculas.

La conexión entre los ejecutores autohospedados y GitHub es a través de HTTP (puerto 80) o HTTPS (puerto 443). Para garantizar la conectividad por HTTPS, configure TLS para GitHub Enterprise Server. Para más información, consulta Configurar TLS

Configuraciones de ejemplo

Nota:

Para evitar problemas, se recomienda tratar las variables de entorno como que distinguen mayúsculas de minúsculas, independientemente del comportamiento del sistema operativo y del shell que utilices.

Linux y macOS

Establezca variables de entorno de proxy para el ejecutor.

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

Windows

En Windows, puede configurar los valores de proxy estableciendo variables de entorno o mediante el comando netsh. El enfoque netsh se aplica a aplicaciones y servicios que dependen de la API winHTTP.

La configuración de variables de entorno sigue siendo necesaria para los ejecutores que usan redes privadas. Si también necesita configurar netsh depende de las aplicaciones usadas en los flujos de trabajo.

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} 

Al configurar esto durante la generación de imágenes personalizadas, use setting-scope=machine para asegurarse de que la configuración del proxy persiste después de los reinicios y durante la creación de imágenes de máquina virtual.

Hacer que la configuración de proxy sea persistente

Al establecer estas variables de entorno durante la generación de imágenes personalizadas, asegúrese de que la configuración persiste en reinicios o recompilaciones de imágenes.

Linux y macOS

Escriba las variables en /etc/environment.

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

Windows

Establezca las variables de entorno de todo el sistema.

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

Configuración de un proxy para ejecutores de Azure

Si el ejecutor se hospeda en Azure, ya sea como ejecutor autohospedado o como ejecutor más grande hospedado en GitHub implementado con redes privadas, es posible que tenga que configurar un proxy para permitir la conectividad saliente a los servicios de GitHub a la vez que mantiene el aislamiento de red.

Debe agregar direcciones IP de administración y metadatos de Azure a la no_proxy lista para asegurarse de que el ejecutor pueda acceder a los servicios de Azure necesarios. Estos puntos de conexión permiten que las máquinas virtuales de Azure recuperen la información de configuración e identidad necesaria para una operación adecuada.

Las dos direcciones IP de Azure son:

Usar un archivo.env para establecer la configuración del proxy

Nota:

El uso de un .env archivo para establecer la configuración del proxy no se puede realizar en un ejecutor hospedado en GitHub.

En los agentes autohospedados, puede configurar las configuraciones de proxy agregando las variables a un archivo .env en el directorio de la aplicación del agente autohospedado (el directorio donde descargó y desempaquetó el software del agente). Este enfoque es útil cuando el runner está configurado para ejecutarse como servicio en una cuenta del sistema. Cuando se inicia el ejecutor, lee las variables establecidas en .env para la configuración del proxy.

Ejemplo de configuración de proxy .env

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

Establecer la configuración del proxy para contenedores Docker

Si usas las acciones del contenedor Docker o los contenedores de servicio en tus flujos de trabajo, es posible que también debas configurar Docker para usar tu servidor proxy además de establecer las variables de entorno anteriores.

Para obtener información sobre la configuración de Docker necesaria, consulta Configuración de Docker para usar un servidor proxy en la documentación de Docker.