Агенты Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Чтобы создать код или развернуть программное обеспечение с помощью Azure Pipelines, вам потребуется по крайней мере один агент. По мере роста базы кода и команды вам потребуется больше агентов.
При запуске конвейера система начинает одно или несколько заданий. Агент вычисляет инфраструктуру с установленным программным обеспечением агента, выполняющим одно задание одновременно.
Azure Pipelines предоставляет несколько различных типов агентов.
Тип агента | Description | Availability |
---|---|---|
Размещенные агенты Microsoft | Агенты, размещенные и управляемые корпорацией Майкрософт | Azure DevOps Services |
Локальные агенты | Агенты, настроенные и управляемые на виртуальных машинах | Azure DevOps Services, Сервер Azure DevOps |
Агенты масштабируемого набора виртуальных машин Azure | Форма локальных агентов с помощью Azure Масштабируемые наборы виртуальных машин, которая может быть автомасштабирована для удовлетворения требований. | Azure DevOps Services |
Агенты управляемых пулов DevOps | Управляемые пулы DevOps — это полностью управляемая служба, в которой виртуальные машины или контейнеры, в которых агенты живут в подписке Microsoft Azure, а не в собственной подписке Azure. | Azure DevOps Services |
Задания можно выполнять непосредственно на хост-компьютере агента или в контейнере.
Размещенные агенты Microsoft
Если конвейеры находятся в Azure Pipelines, у вас есть удобный вариант для запуска заданий с помощью размещенного корпорацией Майкрософт агента. С агентами, размещенными в Microsoft, можно не волноваться об обновлениях и обслуживании. Вы всегда получаете последнюю версию образа виртуальной машины, указанного в конвейере. Каждый раз при запуске конвейера вы получаете новую виртуальную машину. Виртуальная машина перестает использоваться после одного задания (это означает, что любое изменение, которое задание вносит в файловую систему виртуальной машины, например проверка кода, для следующего задания будет недоступно). Размещенные корпорацией Майкрософт агенты могут выполнять задания непосредственно на виртуальной машине или в контейнере.
Azure Pipelines предоставляет заранее определенный пул агентов с именем Azure Pipelines с агентами, размещенными в Microsoft.
Для многих команд это самый простой способ выполнения заданий. Вы можете сначала попробовать его и узнать, работает ли она для сборки или развертывания. В противном случае можно использовать агенты масштабируемого набора или локальный агент.
Совет
Вы можете попробовать размещенный корпорацией Майкрософт агент без оплаты.
Локальные агенты
Агент, который вы настраиваете и управляете самостоятельно для выполнения заданий, является локальным агентом. Локальных агентов можно использовать в Azure Pipelines или в Azure DevOps Server, который ранее назывался Team Foundation Server (TFS). Локальные агенты обеспечивают расширенные возможности для установки зависимого программного обеспечения, необходимого для сборок и развертываний. Кроме того, кэши и конфигурации на уровне компьютера сохраняются от запуска до запуска, что может повысить скорость.
Примечание.
Хотя на каждом компьютере можно установить несколько агентов, настоятельно рекомендуется установить только один агент на компьютер. Установка двух или нескольких агентов может негативно повлиять на производительность и результат конвейеров.
Агент можно установить на компьютер под управлением ОС Linux, macOS или Windows. Также можно установить агент в контейнере Docker. Дополнительные сведения об установке локального агента см. в следующих источниках:
Примечание.
В macOS необходимо очистить специальный атрибут в архиве скачивания, чтобы предотвратить отображение защиты Gatekeeper для каждой сборки в tar-файле при ./config.sh
запуске. Следующая команда очищает расширенный атрибут в файле:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz ## replace V.v.v with the version in the filename downloaded.
# then unpack the gzip tar file normally:
tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz
После установки агента на компьютере вы можете установить любое другое программное обеспечение на этом компьютере в соответствии с вашими заданиями.
Примечание.
Агенты широко совместимы с обратной совместимостью. Любая версия агента должна быть совместима с любой версией Azure DevOps, пока Azure DevOps не требует более поздней версии агента.
Мы поддерживаем только последнюю версию агента, так как она является единственной версией, гарантированной для всех актуальных исправлений и исправлений ошибок.
Версии runner узла
Агент поставляется с несколькими версиями библиотек NodeJS для поддержки целевых задач, использующих различные обработчики узлов.
Все официальные задачи Azure DevOps используют Node 20 в качестве универсального обработчика, однако клиенты по-прежнему могут использовать пользовательские задачи, использующие библиотеки node 6, Node 10 или Node 16. Чтобы обеспечить обратную совместимость с node, которая в настоящее время достигла конца жизни, мы предоставляем следующие методы самообслуживания для установки указанного средства выполнения узла вручную.
Вручную установите средство выполнения Node 6. Дополнительные сведения об установке средства выполнения Node 6 вручную см. в разделе "Поддержка узла 6".
Используйте задачу NodeTaskRunnerInstaller@0 в конвейерах, для которых требуется устаревшая библиотека Node 6.
Установите пакет агента, включающий узел 6.
Azure Pipelines предоставляет две версии пакетов агента.
- Пакеты vsts-agent-* поддерживают узел 6.
- Пакеты pipelines-agent-* не поддерживают узел 6. Эта версия пакета станет пакетом агента по умолчанию в будущем.
Если вы знаете, что вы не используете какие-либо задачи зависимостей Node 6 и не хотите установить узел 6 на компьютере агента, можно установить агент из раздела https://github.com/microsoft/azure-pipelines-agent/releases"Скачивание альтернативных агентов".
Агенты масштабируемого набора виртуальных машин Azure
Агенты масштабируемого набора виртуальных машин Azure — это форма локальных агентов, которые можно автомасштабировать в соответствии с вашими требованиями. Подобная гибкость снижает необходимость в постоянном запуске выделенных агентов. В отличие от агентов, размещенных в Майкрософт, у вас есть гибкость при выборе размеров и образов компьютеров, на которых запускаются агенты.
Вы указываете масштабируемый набор виртуальных машин, количество агентов для хранения в режиме ожидания, максимальное количество виртуальных машин в масштабируемом наборе, а Azure Pipelines управляет масштабированием агентов.
Дополнительные сведения см. в разделе "Агенты масштабируемого набора виртуальных машин Azure".
Агенты управляемых пулов DevOps
Управляемые пулы DevOps позволяют командам разработчиков быстро и легко создавать пулы агентов Azure DevOps, адаптированные к конкретным потребностям команды. Управляемые пулы DevOps реализуют рекомендации по обеспечению безопасности, предоставляют ручки для балансировки затрат и производительности, предоставляют пути для наиболее распространенных сценариев и значительно сокращает время, затрачиваемое на создание и обслуживание настраиваемых пулов.
Управляемые пулы DevOps — это эволюция пулов агентов масштабируемого набора виртуальных машин Azure DevOps, упрощая создание настраиваемого пула, повышая масштабируемость и надежность пользовательских пулов. Управляемые пулы DevOps — это полностью управляемая служба, в которой виртуальные машины или контейнеры, использующие агенты, существуют в подписке Microsoft Azure, а не в личной подписке Azure, например при использовании пулов агентов Масштабируемого набора виртуальных машин Azure DevOps. Дополнительные сведения см. в документации по управляемым пулам DevOps.
Параллельные задания
Параллельные задания представляют количество заданий, которые можно выполнять одновременно в организации. Если у вашей организации есть одно параллельное задание, вы можете выполнять одно задание за раз в организации, при этом любые другие параллельные задания помещается в очередь до тех пор, пока не завершится первое задание. Для выполнения двух заданий одновременно необходимо иметь два параллельных задания. В Azure Pipelines можно выполнять параллельные задания в инфраструктуре, размещенной в Microsoft, или в собственной (локальной) инфраструктуре.
Каждой организации Microsoft по умолчанию предоставляет уровень "Бесплатный", который включает не менее одного параллельного задания. В зависимости от количества одновременно существующих конвейеров, которые необходимо запустить, может потребоваться большее количество параллельных заданий для одновременного использования нескольких агентов, размещенных в Microsoft, или локальных агентов. Дополнительные сведения о параллельных заданиях и различных бесплатных уровнях служб см. в разделе Параллельные задания в Azure Pipelines.
Для одновременного использования нескольких агентов может потребоваться больше параллельных заданий:
Внимание
Начиная с Azure DevOps Server 2019, вам не нужно платить за локальные параллельные задания в выпусках. Вы ограничены только количеством агентов, которые у вас есть.
Возможности
У каждого локального агента есть набор возможностей, указывающих на то, что он может сделать. Возможности — это пары "имя-значение", которые автоматически обнаруживаются программным обеспечением агента, называемыми системными возможностями или возможностями, которые определяются, называемые пользовательскими возможностями.
Программное обеспечение агента автоматически определяет различные системные возможности, такие как имя компьютера, тип операционной системы и версии определенного программного обеспечения, установленного на компьютере. Кроме того, переменные среды, определенные на компьютере, автоматически отображаются в списке системных возможностей.
Примечание.
Хранение переменных среды в качестве возможностей означает, что при запуске агента значения хранимых возможностей используются для задания переменных среды. Кроме того, любые изменения переменных среды, внесенные во время выполнения агента, не будут выбраны и использованы любой задачей. Если у вас есть переменные конфиденциальной среды, которые изменяются, и вы не хотите, чтобы они хранились в качестве возможностей, их можно игнорировать, задав VSO_AGENT_IGNORE
переменную среды с разделителями-запятыми. Например, PATH
является критической переменной, которую может потребоваться игнорировать при установке программного обеспечения.
При создании конвейера необходимо указать определенные требования агента. Система отправляет задание только агентам, имеющим возможности, соответствующие требованиям , указанным в конвейере. В результате возможности агента позволяют направлять задания определенным агентам.
Примечание.
Требования и возможности предназначены для использования с локальными агентами, чтобы задания могли соответствовать агенту, который соответствует требованиям задания. При использовании агентов, размещенных Корпорацией Майкрософт, вы выбираете образ агента, который соответствует требованиям задания, поэтому, хотя это возможно, чтобы добавить возможности в размещенный корпорацией Майкрософт агент, вам не нужно использовать возможности с размещенными корпорацией Майкрософт агентами.
Настройка требований
Чтобы добавить запрос к конвейеру сборки YAML, добавьте demands:
строку в pool
раздел.
pool:
name: Default
demands: SpecialSoftware # exists check for SpecialSoftware
Можно проверить наличие возможности или сравнить с значением возможности. Дополнительные сведения см. в схеме YAML — требования.
Настройка возможностей агента
Вы можете просмотреть сведения об агенте, включая его версию и системные возможности, и управлять его возможностями пользователя, перейдя к пулам агентов и выбрав вкладку "Возможности " для нужного агента.
В веб-браузере перейдите к пулам агентов:
Войдите в свою организацию (
https://dev.azure.com/{yourorganization}
).Выберите Azure DevOps, параметры организации.
Выберите пулы агентов.
Войдите в коллекцию проектов (
http://your-server/DefaultCollection
).Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Перейдите на вкладку возможностей:
На вкладке пулов агентов выберите нужный пул агентов .
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Примечание.
Размещенные корпорацией Майкрософт агенты не отображают системные возможности. Список программного обеспечения, установленного в агентах, размещенных корпорацией Майкрософт, см. в разделе "Использование размещенного майкрософт агента".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Чтобы зарегистрировать новую возможность в агенте, нажмите кнопку "Добавить новую возможность".
Совет
После установки нового программного обеспечения на локальном агенте необходимо перезапустить агент для отображения новой возможности. Дополнительные сведения см. в разделе "Перезапуск агента Windows", "Перезапустить агент Linux" и "Перезапустить агент Mac".
Коммуникации
Взаимодействия с Azure Pipelines
Взаимодействие с Azure DevOps Server
Агент обменивается данными с Azure Pipelines или Azure DevOps Server, чтобы определить задание для запуска и сообщить о журналах и состоянии задания. Агент всегда инициирует эту связь. Все сообщения от агента в Azure Pipelines или Azure DevOps Server передаются по протоколу HTTP или HTTPS в зависимости от конфигурации агента. Эта модель извлечения позволяет агенту настраиваться в разных топологиях, как показано в следующих примерах.
Ниже приведен общий шаблон взаимодействия между агентом и Azure Pipelines или Azure DevOps Server.
Пользователь регистрирует агент в Azure Pipelines или Azure DevOps Server, добавив его в пул агентов. Для регистрации агента в этом пуле агентов необходимо быть администратором пула агентов. Удостоверение администратора пула агентов необходимо только во время регистрации и не сохраняется на агенте. Он не используется в дальнейшем для обмена данными между агентом и Azure Pipelines или Azure DevOps Server. После завершения регистрации агент скачивает маркер OAuth прослушивателя и использует его для прослушивания очереди заданий.
Агент прослушивает отправку нового запроса на задание в очереди заданий в Azure Pipelines/Azure DevOps Server с помощью длинного опроса HTTP. Когда задание доступно, агент скачивает задание и маркер OAuth для конкретного задания. Azure Pipelines/Azure DevOps Server создает кратковременный маркер для идентификатора с областью действия, указанного в конвейере. Маркер используется агентом для доступа или изменения ресурсов в Azure Pipelines или Azure DevOps Server в этом задании. Например, для доступа к исходному коду или отправке результатов теста.
Агент удаляет маркер OAuth для конкретного задания после завершения задания, а затем возвращается к проверке наличия нового запроса задания с помощью маркера OAuth прослушивателя.
Полезные данные сообщений, которыми обмениваются агент и Azure Pipelines или Azure DevOps Server, защищены с помощью асимметричного шифрования. Каждый агент имеет пару из открытого и закрытого ключей, причем открытый ключ обменивается данными с сервером во время регистрации. С помощью открытого ключа сервер шифрует полезные данные задания перед отправкой в агент. Агент расшифровывает содержимое задания с помощью соответствующего закрытого ключа. Этот метод защищает секреты, хранящиеся в конвейерах или группах переменных при обмене с агентом.
Примечание.
Агент обеспечивает поддержку выходных данных кодировки клиента UTF-8. Однако если в вашей системе есть другая кодировка от UTF-8, могут возникнуть некоторые проблемы с выходными данными журналов. Например, журналы могут содержать символы, которые не распознаются кодировкой вашей системы, поэтому они могут отображаться как вязкие или отсутствующие символы.
Обмен данными для развертывания на целевых серверах
Если агент используется для развертывания артефактов в наборе серверов, он должен находиться "в зоне видимости" для подключения к этим серверам. По умолчанию пулы агентов, размещенных на серверах Майкрософт, имеют возможность подключения к веб-сайтам и серверам Azure, работающим в Azure.
Примечание.
Если ресурсы Azure выполняются в виртуальная сеть Azure, вы можете получить диапазоны IP-адресов агента, в которых развернуты агенты, размещенные Корпорацией Майкрософт, чтобы настроить правила брандмауэра для виртуальной сети Azure, чтобы разрешить доступ агенту.
Если локальные среды не имеют подключения к пулу агентов, размещаемому Корпорацией Майкрософт, что обычно происходит из-за промежуточных брандмауэров, необходимо вручную настроить локальные агенты на локальных компьютерах. Агенты должны иметь подключение к целевым локальным средам и доступ к Интернету для подключения к Azure Pipelines или Team Foundation Server, как показано в следующей схеме.
Аутентификация
Чтобы зарегистрировать агент, необходимо быть членом роли администратора в пуле агентов. Удостоверение администратора пула агентов необходимо только во время регистрации и не сохраняется на агенте. Он не используется при последующем взаимодействии между агентом и Azure Pipelines или Azure DevOps Server. Кроме того, чтобы настроить агента, необходимо иметь права локального администратора сервера.
При регистрации агента выберите один из следующих типов проверки подлинности, а программа установки агента запрашивает дополнительные сведения, необходимые для каждого типа проверки подлинности. Дополнительные сведения см. в разделе "Параметры проверки подлинности локального агента".
- Личный маркер доступа
- Альтернативное подключение к серверу Azure DevOps server или TFS с помощью базовой проверки подлинности. При выборе альтернативного параметра вам будет предложено указать свои учетные данные.
Кроме того, агенты Windows имеют следующие два варианта проверки подлинности на сервере Azure DevOps Server.
- Согласование Подключения к Azure DevOps Server в качестве пользователя, отличного от пользователя, вошедшего в систему, с помощью схемы проверка подлинности Windows, например New Technology LAN Manager (NTLM) или Kerberos. После выбора "Согласование" появится запрос на ввод учетных данных.
- Встроенная (по умолчанию) подключение агента Windows к Azure DevOps Server с помощью учетных данных пользователя, вошедшего в систему, через схему проверка подлинности Windows, например NTLM или Kerberos. После выбора этого метода вам не будет предложено указать учетные данные.
Внимание
Сервер должен быть настроен для поддержки метода проверки подлинности для использования альтернативной, переговорной или интегрированной проверки подлинности.
Метод проверки подлинности, используемый для регистрации агента, используется только во время регистрации агента. Дополнительные сведения о том, как агенты взаимодействуют с Azure Pipelines после регистрации, см. в статье "Взаимодействие с Azure Pipelines" или Azure DevOps Server.
Интерактивный процесс и служба
Локальный агент можно запустить как службу или как интерактивный процесс.
После настройки агента рекомендуется сначала попробовать его в интерактивном режиме, чтобы убедиться, что он работает. Для последующей эксплуатации рекомендуется запустить агент в одном из следующих режимов, чтобы он бесперебойно продолжал работу. Эти режимы также гарантируют, что агент будет запущен автоматически при перезапуске компьютера.
Как услуга. Для управления жизненным циклом агента можно использовать диспетчер служб операционной системы. Кроме того, при запуске агента в качестве службы лучше работать автоматически.
В качестве интерактивного процесса с включенным автоматическим входом в систему. В некоторых случаях может потребоваться интерактивный запуск агента для использования в рабочей среде, например для выполнения тестов пользовательского интерфейса. Когда агент настроен для работы в этом режиме, экранная заставка также отключается. Некоторые политики домена могут препятствовать включению автоматического входа в систему или отключению средства сохранения экрана. В таких случаях может потребоваться получить исключение из политики домена или запустить агент на компьютере рабочей группы, где политики домена не применяются.
Примечание.
При включении автоматического входа в систему или отключении средства сохранения экрана возникают риски безопасности, так как вы позволяете другим пользователям переходить к компьютеру и использовать учетную запись, которая автоматически входит в систему. Если агент настроен для работы таким образом, то вам необходимо обеспечить физическую защиту компьютера. Например, в безопасном объекте. Если вы используете удаленный рабочий стол для доступа к компьютеру, на котором работает агент с автоматическим входом, просто закрывая удаленный рабочий стол, компьютер будет заблокирован и все тесты пользовательского интерфейса, выполняемые в этом агенте, могут завершиться ошибкой. Чтобы избежать этого, используйте команду tscon для отключения от удаленного рабочего стола. Например:
%windir%\System32\tscon.exe 1 /dest:console
Учетная запись агента
Независимо от того, выполняется ли агент в качестве службы или в интерактивном режиме, можно выбрать учетную запись компьютера, используемую для запуска агента. Выбор учетной записи агента зависит только от потребностей задач, выполняемых в заданиях сборки и развертывания.
Например, чтобы выполнять задачи с помощью проверка подлинности Windows для доступа к внешней службе, агент должен запустить учетную запись с доступом к этой службе. Однако при выполнении тестов пользовательского интерфейса, таких как Selenium или закодированные тесты пользовательского интерфейса, для которых требуется браузер, браузер запускается в контексте учетной записи агента.
В Windows следует использовать учетную запись службы, например сетевую службу или локальную службу. Эти разрешения учетных записей ограничены и срок действия паролей не истекает, то есть агенту требуется меньше управления с течением времени.
Эти учетные данные отличаются от учетных данных, используемых при регистрации агента в Azure Pipelines или Azure DevOps Server.
Версия агента и обновления
Мы обновляем программное обеспечение агента каждые несколько недель в Azure Pipelines.
Мы указываем версию агента в формате {major}.{minor}
.
Например, если используется 2.1
версия агента, то основная версия — 2
и дополнительная версия 1
.
Размещенные корпорацией Майкрософт агенты всегда хранятся в актуальном состоянии. Если более новая версия агента отличается только в дополнительной версии, Azure Pipelines может автоматически обновлять локальные агенты. Этот параметр можно настроить в пулах агентов, выбрать агент, параметры — по умолчанию включен. Обновление запрашивается, когда компонент платформы или одна из задач, используемых в конвейере, требует более новой версии агента.
При интерактивном запуске локального агента или при наличии более новой основной версии агента, возможно, потребуется вручную обновить агенты. Вы можете легко обновить агенты на вкладке пулов агентов в вашей организации. Конвейеры не могут выполняться без совместимого агента
Обновление локальных агентов
Перейдите к параметрам проекта, пулам агентов.
Выберите пул агентов и нажмите кнопку "Обновить все агенты".
Вы также можете обновить агенты по отдельности, выбрав "Обновить агент " в меню ... .
Выберите "Обновить", чтобы подтвердить обновление.
Запрос на обновление помещается в очередь для каждого агента в пуле и выполняется при завершении всех выполняемых в данный момент заданий. Обновление обычно занимает всего несколько минут . Достаточно долго, чтобы скачать последнюю версию программного обеспечения агента (примерно 200 МБ), распакуйте его и перезапустите агент с новой версией. Вы можете отслеживать состояние агентов на вкладке "Агенты ".
Мы обновляем программное обеспечение агента с каждым обновлением в Azure DevOps Server.
Мы указываем версию агента в формате {major}.{minor}
.
Например, если версия агента имеет 2.1
значение, то основная версия — 2, а дополнительная — 1.
Если в Azure DevOps Server есть более новая версия агента, и этот новый агент отличается только в дополнительной версии, он обычно может быть автоматически обновлен. Обновление запрашивается, когда компонент платформы или одна из задач, используемых в конвейере, требует более новой версии агента. Начиная с Azure DevOps Server 2019, вам не нужно ждать выпуска нового сервера. Вы можете отправить новую версию агента на уровень приложений, и эта версия предлагается в качестве обновления.
При интерактивном запуске агента или при наличии более новой основной версии агента может потребоваться вручную обновить агенты. Агент можно легко обновить на вкладке пулов агентов в коллекции проектов . Конвейеры не могут выполняться без совместимого агента.
Вы можете просмотреть версию агента, перейдя к пулам агентов и выбрав вкладку "Возможности " для нужного агента, как описано в разделе "Настройка возможностей агента".
Чтобы активировать обновление агента программным способом, можно использовать API обновления агента, как описано в разделе "Как активировать обновления агента программным способом для конкретного пула агентов?".
Примечание.
Для серверов без доступа к Интернету вручную скопируйте ZIP-файл агента в следующую папку, чтобы использовать его в качестве локального файла. Создайте папку "Агенты", если она отсутствует.
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents
- Linux:
usr/share/Microsoft/Azure DevOps/Agents
- macOS:
usr/share/Microsoft/Azure DevOps/Agents
Создайте папку "Агенты", если она отсутствует.
Вопросы и ответы
Разделы справки убедитесь, что у меня установлена последняя версия агента?
Перейдите на вкладку пулов агентов :
Войдите в свою организацию (
https://dev.azure.com/{yourorganization}
).Выберите Azure DevOps, параметры организации.
Выберите пулы агентов.
Войдите в коллекцию проектов (
http://your-server/DefaultCollection
).Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Выберите Azure DevOps, параметры коллекции.
Выберите пулы агентов.
Щелкните пул, содержащий агент.
Убедитесь, что агент включен.
Перейдите на вкладку возможностей:
На вкладке пулов агентов выберите нужный пул агентов .
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Примечание.
Размещенные корпорацией Майкрософт агенты не отображают системные возможности. Список программного обеспечения, установленного в агентах, размещенных корпорацией Майкрософт, см. в разделе "Использование размещенного майкрософт агента".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
На вкладке пулов агентов выберите нужный пул.
Выберите агенты и выберите нужный агент.
Перейдите на вкладку " Возможности".
Agent.Version
Найдите возможность. Это значение можно проверить на наличие последней опубликованной версии агента. Ознакомьтесь с агентом Azure Pipelines и проверьте страницу с наибольшим номером версии, указанным в списке.Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите "Обновить все агенты".
Можно ли обновить агенты, которые являются частью пула серверов Azure DevOps?
Да. Начиная с Azure DevOps Server 2019, можно настроить сервер для поиска файлов пакета агента на локальном диске. Эта конфигурация переопределит версию по умолчанию, которая была связана с сервером во время выпуска. Этот сценарий также применяется, если сервер не имеет доступа к Интернету.
С компьютера с доступом к Интернету скачайте последнюю версию файлов пакета агента (в .zip или .tar.gz форме) на странице выпусков агента Azure Pipelines GitHub.
Передайте скачанные файлы пакетов на каждый уровень приложений Azure DevOps Server с помощью выбранного метода (например, USB-накопителя, передачи сети и т. д.). Поместите файлы агента в папку
%ProgramData%\Microsoft\Azure DevOps\Agents
. Создайте папку "Агенты", если она отсутствует.Все готово! Сервер Azure DevOps теперь будет использовать локальные файлы при обновлении агентов. Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Но если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите "Обновить все агенты".
Есть ли у локальных агентов преимущества в плане производительности по сравнению с агентами, размещенными на серверах Майкрософт?
Во многих случаях да. В частности:
При использовании локального агента можно выполнять пошаговые сборки. Например, если вы определяете конвейер, который не очищает репозиторий и не выполняет чистую сборку, сборки обычно выполняются быстрее. Вы не получаете эти преимущества с агентом, размещенным корпорацией Майкрософт, если вы не используете такие функции, как кэширование, так как агент уничтожен после завершения конвейера.
Для запуска вашей сборки агенту, размещенному на сервере Майкрософт, может потребоваться больше времени. Хотя для назначения задания агенту, размещенного корпорацией Майкрософт, иногда может потребоваться несколько минут, чтобы агент был выделен в зависимости от нагрузки на нашу систему.
Можно ли установить несколько локальных агентов на одном компьютере?
Да. Этот подход может работать хорошо для агентов, выполняющих задания, которые не используют много общих ресурсов. Например, можно попробовать использовать его для агентов, запускающих выпуски, которые в основном оркестрируют развертывания и не выполняют большого объема работ непосредственно на агенте.
Вы можете обнаружить, что в других случаях вы не получаете много эффективности, выполняя несколько агентов на одном компьютере. Например, для агентов, выполняющих сборки, которые используют много дисков и ресурсов ввода-вывода, может быть не стоит.
Вы также можете столкнуться с проблемами, если параллельные задания сборки используют одноэлементное развертывание средства, например пакеты npm. Например, одна сборка может обновить зависимость как раз в тот момент, когда она используется другой сборкой, и это может привести к снижению надежности результатов и ошибкам.
Что такое поведение агентов при отмене заданий конвейера?
Для агентов, размещаемых Майкрософт, агент разъединяется и возвращается в пул Azure Pipelines.
Для локальных агентов:
При отмене конвейера агент отправляет последовательность команд в процесс, в котором выполняется текущий этап.
- Время ожидания отправки первой команды составляет 7,5 с.
- Если процесс не завершается, вторая команда отправляется с тайм-аутом 2,5 секунды.
- Если процесс не завершается, агент командует его убить.
- Если процесс игнорирует два первоначальных запроса на завершение, он принудительно убит.
С момента начального запроса до полного прекращения проходит примерно 10 секунд.
Выданные процессу команды отмены конвейера отличаются в зависимости от операционной системы агента.
- macOS и Linux: отправляются команды SIGINT, затем SIGTERM, а затем SIGKILL.
- Windows: отправляются команды Ctrl+C, затем Ctrl+Break, а затем Process.Kill.
Как активировать обновления агента программным способом для конкретного пула агентов?
Обновления агента для пула можно активировать с помощью следующего API:
POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
POST https://{server url}/tfs/{collection}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
Примечание.
Дополнительные сведения о сопоставлении версий API и Azure DevOps Server см. в статье API и сопоставление версий Azure DevOps Server
Параметры URI
Имя. | In | Обязательное поле | Type | Описание |
---|---|---|---|---|
agentId |
query | False | строка | Агент для обновления. Если не указано , обновление активируется для всех агентов. |
organization |
path | Истина | строка | Название организации Azure DevOps. |
poolId |
path | Истина | целое число (int32) | Используемый пул агентов |
api-version |
query | False | строка | Используемая версия API. Значение должно иметь значение 6.0, чтобы использовать эту версию API. |
Чтобы активировать обновление агента, текст запроса должен быть пустым.
Примечание.
Агент Azure Pipelines открытый код на GitHub.
Подробнее
Дополнительные сведения об агентах см. в следующих модулях из приложения сборки с помощью схемы обучения Azure DevOps .