Параметры прокси-сервера агента Azure Pipelines не работают должным образом - PullRequest
2 голосов
/ 01 мая 2019

При настройке локального агента сборки на сервере Windows 2016 я использую следующие параметры конфигурации прокси:

.\config.cmd --proxyurl http://192.3.4.5:8080 --sslskipcertvalidation

Это позволяет серверу сборки без проблем подключаться к DevOps Azure через прокси-сервер, однако сборке powershell не удается подключиться к Интернету. Я решил это, установив переменную окружения в начале команды сборки следующим образом:

$env:http_proxy = "192.3.4.5:8080"

Последняя проблема - это шаг в сборке, требующий winrm к виртуальной машине, размещенной непосредственно на сервере сборки, и он не может подключиться. Я попытался настроить агент .proxybypass файл следующим образом:

localhost
192\.3\.4\.*

Однако решить проблему не удалось. Любые идеи о том, как установить обход прокси на этапе сборки? Могу ли я установить другую переменную powershell env?

1 Ответ

1 голос
/ 02 мая 2019

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

Powershell использует настройки прокси-сервера настроек Windows для пользователя, выполняющего задачу. Вы также можете переопределить конфигурацию прокси .NET. Powershell использует настройки прокси .NET, как их изменить на лету, здесь: https://stackoverflow.com/a/209072/736079

Используйте класс .NET в сборке powershell:

[net.webrequest]::defaultwebproxy = new-object net.webproxy "http://$env:proxy_ip" 

и затем добавьте

[system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...