Поделиться через


Запуск агента с самостоятельным размещением через веб-прокси

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

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

Azure Pipelines, TFS 2018 RTM и более поздней версии

(Применяется к агенту версии 2.122 и более поздней.)

Чтобы настроить агент для работы за веб-прокси, передайте --proxyurl, --proxyusername и --proxypassword во время его настройки.

Рассмотрим пример.

./config.cmd --proxyurl http://127.0.0.1:8888 --proxyusername "myuser" --proxypassword "mypass"

Мы храним учетные данные прокси-сервера ответственно на каждой платформе, чтобы предотвратить случайную утечку. В Linux учетные данные шифруются симметричным ключом на основе идентификатора компьютера. В macOS мы используем цепочку ключей. В Windows мы используем хранилище учетных данных.

Замечание

Агент версии 122.0, который поставляется с TFS 2018 RTM, имеет известную проблему с настройкой как службы в Windows. Поскольку хранилище учетных данных Windows привязано к каждому пользователю, необходимо настроить агент с тем же пользователем, под которым будет работать служба. Например, чтобы настроить запуск службы агента как mydomain\buildadmin, необходимо запустить config.cmd как mydomain\buildadmin. Вы можете сделать это, войдя в систему под указанным пользователем или с помощью Run as a different user в оболочке Windows.

Как агент обрабатывает прокси-сервер в процессе построения или выпуска

Агент будет взаимодействовать со службой Azure DevOps/TFS через веб-прокси, указанный в файле .proxy.

Так как код задачи Get Source в сборках и код задачи Download Artifact в выпусках также встроен в агент, эти задачи будут следовать конфигурации прокси-сервера агента из файла .proxy.

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

Обратите внимание, что многие средства не используют автоматически настроенные параметры прокси-сервера агента. Например, такие инструменты, как curl и dotnet, могут требовать, чтобы переменные среды, такие как прокси-сервера http_proxy, были настроены на компьютере.

Указание URL-адресов обхода прокси-сервера

.proxybypass Создайте файл в корневом каталоге агента, который указывает регулярные выражения (в синтаксисе ECMAScript) для сопоставления URL-адресов, которые должны обойти прокси-сервер. Рассмотрим пример.

github\.com
bitbucket\.com

Включение базовой проверки подлинности для настройки прокси-сервера

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

Рассмотрим пример.

./config.cmd --proxyurl http://proxy.company.com:port --proxyusername <userNamePlaceholder> --proxypassword <passwordPlaceholder> --usebasicauthforproxy