Skip to main content

Использование прокси-серверов с раннером

Вы можете настроить раннеры в изолированных условиях так, чтобы использовать прокси-сервер для безопасной связи с GitHub.

Примечание.

GitHub Enterprise Serverразмещенные в данный момент средства выполнения не поддерживаются в GitHub.

Настройка прокси для средств запуска Linux и Windows

Если средству выполнения тестов необходимо взаимодействовать через прокси-сервер, вы можете настроить параметры прокси-сервера с помощью переменных среды или конфигураций системного уровня.

VariableDescriptionExample
https_proxyURL прокси для трафика HTTPS. При необходимости вы можете включить базовую аутентификацию.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxyURL прокси для HTTP-трафика. При необходимости вы можете включить базовую аутентификацию.http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxyРазделенный запятыми список хостов или IP-адресов, которые должны обходить прокси. Некоторые клиенты учитывают IP-адреса только тогда, когда соединения устанавливаются непосредственно с IP-адресом, а не с именем хоста.example.com
example.com,myserver.local:443,example.org

Переменные среды прокси считываются при запуске приложения средства выполнения, поэтому необходимо задать переменные среды перед настройкой или запуском приложения средства выполнения. Если конфигурация прокси-сервера изменится, необходимо перезапустить приложение средства выполнения.

На компьютерах с Windows имена переменных среды прокси не чувствительны к регистру. На компьютерах с Linux и macOS рекомендуется использовать только строчные символы в переменных среды. Если у вас есть переменная среды в нижнем и верхнем регистре в Linux или macOS, например https_proxy и HTTPS_PROXY, локальное приложение Runner использует переменную среды в нижнем регистре.

Подключение между локальными запусками и GitHub через HTTP (порт 80) или HTTPS (порт 443). Чтобы обеспечить подключение по протоколу HTTPS, настройте TLS для GitHub Enterprise Server. Для получения дополнительной информации см. Настройка TLS.

Предупреждение

Самостоятельные раннеры не поддерживают использование IP-адресов и диапазонов CIDR в no_proxy переменной среды. Если ваш GitHub Enterprise Server экземпляр использует IP-адрес и вы настроите no_proxy обход прокси для этого адреса, раннер всё равно не сможет подключиться. Если к вашему GitHub Enterprise Server экземпляру обращается с IP-адреса, и соединение должно обойти прокси, раннер не сможет подключиться, даже если этот IP-адрес указан в no_proxy.

Примеры конфигураций

Примечание.

Чтобы избежать проблем, рекомендуется рассматривать переменные среды как конфиденциальные регистры независимо от поведения операционной системы и используемой оболочки.

Linux и macOS

Установите переменные среды прокси для средства выполнения.

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 вы можете настроить параметры прокси либо путем установки переменных среды, либо с помощью команды netsh. Подход netsh применяется к приложениям и службам, использующим API WinHTTP.

Настройка переменных среды по-прежнему требуется для средств выполнения, использующих частную сеть. Нужно ли вам также настраивать netsh, зависит от приложений, используемых в ваших рабочих процессах.

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} 

При настройке этого параметра во время создания пользовательского образа используйте его setting-scope=machine , чтобы параметры прокси-сервера сохранялись после перезагрузки и во время создания образа виртуальной машины.

Сохранение настроек прокси

При настройке этих переменных среды во время создания пользовательского образа убедитесь, что конфигурация сохраняется при перезагрузке или перестроении образа.

Linux и macOS

Запишите переменные в /etc/environment.

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

Виндоус

Задайте общесистемные переменные среды.

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

Настройка прокси-сервера для средств выполнения Azure

Если средство выполнения тестов размещено в Azure в качестве локального средства выполнения тестов или более крупного средства выполнения, размещенного в GitHub и развернутого с использованием частной сети, вам может потребоваться настроить прокси-сервер, чтобы разрешить исходящее подключение к службам GitHub при сохранении сетевой изоляции.

В список следует добавить метаданные Azure и IP-адреса no_proxy управления, чтобы средство выполнения тестов могло получить доступ к необходимым службам Azure. Эти конечные точки позволяют виртуальным машинам Azure получать сведения о конфигурации и удостоверениях, необходимые для правильной работы.

Вот два IP-адреса Azure:

Использование файла .env для настройки конфигурации прокси-сервера

Примечание.

Использование .env файла для настройки конфигурации прокси-сервера не может быть выполнено в средстве выполнения, размещенном в GitHub.

В локальных средствах выполнения тестов вы можете настроить параметры прокси-сервера, добавив переменные в .env файл в каталоге приложения локального средства выполнения тестов (каталоге, в котором вы скачали и распаковали программное обеспечение средства выполнения). Этот подход полезен, когда средство выполнения тестов настроено для запуска в качестве службы под системной учетной записью. Когда средство выполнения запускается, оно считывает переменные, заданные .env для конфигурации прокси.

Пример .env конфигурации прокси-сервера

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

Настройка конфигурации прокси-сервера для контейнеров Docker

Если в рабочих процессах используются действия контейнера Docker или контейнеры служб, возможно, потребуется настроить Docker для применения прокси-сервера в дополнение к настройке вышеуказанных переменных среды.

Сведения о требуемой конфигурации Docker см. в разделе "Настройка Docker" для использования прокси-сервера в документации По Docker.