Агенты 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

Размещенные агенты Microsoft

Если конвейеры находятся в Azure Pipelines, у вас есть удобный вариант для запуска заданий с помощью размещенного корпорацией Майкрософт агента. С агентами, размещенными в Майкрософт, можно не волноваться об обновлениях и обслуживании. Вы всегда получаете последнюю версию образа виртуальной машины, указанного в конвейере. Каждый раз при запуске конвейера вы получаете новую виртуальную машину. Виртуальная машина перестает использоваться после одного задания (это означает, что любое изменение, которое задание вносит в файловую систему виртуальной машины, например проверка кода, для следующего задания будет недоступно). Размещенные корпорацией Майкрософт агенты могут выполнять задания непосредственно на виртуальной машине или в контейнере.

Azure Pipelines предоставляет заранее определенный пул агентов с именем Azure Pipelines с агентами, размещенными в Майкрософт.

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

Совет

Вы можете попробовать размещенный корпорацией Майкрософт агент без оплаты.

Узнайте больше об размещенных в Майкрософт агентах.

Локальные агенты

Агент, который вы настраиваете и управляете самостоятельно для выполнения заданий, является локальным агентом. Локальных агентов можно использовать в 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".

Параллельные задания

Параллельные задания представляют количество заданий, которые можно выполнять одновременно в организации. Если у вашей организации есть одно параллельное задание, вы можете выполнять одно задание за раз в организации, при этом любые другие параллельные задания помещается в очередь до тех пор, пока не завершится первое задание. Для выполнения двух заданий одновременно необходимо иметь два параллельных задания. В Azure Pipelines можно выполнять параллельные задания в инфраструктуре, размещенной в Майкрософт, или в собственной (локальной) инфраструктуре.

Каждой организации Майкрософт по умолчанию предоставляет уровень "Бесплатный", который включает не менее одного параллельного задания. В зависимости от количества одновременно существующих конвейеров, которые необходимо запустить, может потребоваться большее количество параллельных заданий для одновременного использования нескольких агентов размещенных в Майкрософт, или локальных агентов. Дополнительные сведения о параллельных заданиях и различных бесплатных уровнях служб см. в разделе Параллельные задания в Azure Pipelines.

Для одновременного использования нескольких агентов может потребоваться больше параллельных заданий:

Внимание

Начиная с Azure DevOps Server 2019, вам не нужно платить за локальные параллельные задания в выпусках. Вы ограничены только количеством агентов, которые у вас есть.

Возможности

У каждого локального агента есть набор возможностей, указывающих на то, что он может сделать. Возможности — это пары "имя-значение", которые автоматически обнаруживаются программным обеспечением агента, называемыми системными возможностями или возможностями, которые определяются, называемые пользовательскими возможностями.

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

Примечание.

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

При создании конвейера необходимо указать определенные требования агента. Система отправляет задание только агентам, имеющим возможности, соответствующие требованиям , указанным в конвейере. В результате возможности агента позволяют направлять задания определенным агентам.

Примечание.

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

Настройка требований

Чтобы добавить запрос к конвейеру сборки YAML, добавьте demands: строку в pool раздел.

pool:
  name: Default
  demands: SpecialSoftware # exists check for SpecialSoftware

Можно проверить наличие возможности или сравнить с значением возможности. Дополнительные сведения см. в схеме YAML — требования.

Настройка возможностей агента

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

  1. В веб-браузере перейдите к пулам агентов:

    1. Войдите в свою организацию (https://dev.azure.com/{yourorganization}).

    2. Выберите Azure DevOps, параметры организации.

      Выберите параметры организации.

    3. Выберите пулы агентов.

      Перейдите на вкладку

    1. Войдите в коллекцию проектов (http://your-server/DefaultCollection).

    2. Выберите Azure DevOps, параметры коллекции.

      Выберите параметры коллекции.

    3. Выберите пулы агентов.

      Выберите пулы агентов.

    1. Выберите Azure DevOps, параметры коллекции.

      Параметры коллекции, 2019.

    2. Выберите пулы агентов.

      Выберите пулы агентов, 2019.

  2. Перейдите на вкладку возможностей:

    1. На вкладке пулов агентов выберите нужный пул агентов .

      В пулах агентов выберите нужный пул агентов.

    2. Выберите агенты и выберите нужный агент.

      Выберите агенты и выберите агент.

    3. Перейдите на вкладку " Возможности".

      Перейдите на вкладку

      Примечание.

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

    1. На вкладке пулов агентов выберите нужный пул.

      Выберите нужный пул.

    2. Выберите агенты и выберите нужный агент.

      Выберите агенты и выберите нужный агент.

    3. Перейдите на вкладку " Возможности".

      Вкладка возможностей агента.

    1. На вкладке пулов агентов выберите нужный пул.

      Выберите нужную вкладку 2019.

    2. Выберите агенты и выберите нужный агент.

      Выберите нужный агент, 2019.

    3. Перейдите на вкладку " Возможности".

      Перейдите на вкладку

  3. Чтобы зарегистрировать новую возможность в агенте, нажмите кнопку "Добавить новую возможность".

Совет

После установки нового программного обеспечения на локальном агенте необходимо перезапустить агент для отображения новой возможности. Дополнительные сведения см. в разделе "Перезапуск агента Windows", "Перезапустить агент Linux" и "Перезапустить агент Mac".

Коммуникации

Взаимодействия с Azure Pipelines

Взаимодействие с Azure DevOps Server

Агент обменивается данными с Azure Pipelines или Azure DevOps Server, чтобы определить задание для запуска и сообщить о журналах и состоянии задания. Агент всегда инициирует эту связь. Все сообщения от агента в Azure Pipelines или Azure DevOps Server передаются по протоколу HTTP или HTTPS в зависимости от конфигурации агента. Эта модель извлечения позволяет агенту настраиваться в разных топологиях, как показано в следующих примерах.

Топологии агента в локальных установках.

Топологии агента в Azure DevOps Services.

Ниже приведен общий шаблон взаимодействия между агентом и Azure Pipelines или Azure DevOps Server.

  1. Пользователь регистрирует агент в Azure Pipelines или Azure DevOps Server, добавив его в пул агентов. Для регистрации агента в этом пуле агентов необходимо быть администратором пула агентов. Удостоверение администратора пула агентов необходимо только во время регистрации и не сохраняется на агенте. Он не используется в дальнейшем для обмена данными между агентом и Azure Pipelines или Azure DevOps Server. После завершения регистрации агент скачивает маркер OAuth прослушивателя и использует его для прослушивания очереди заданий.

  2. Агент прослушивает отправку нового запроса на задание в очереди заданий в Azure Pipelines/Azure DevOps Server с помощью длинного опроса HTTP. Когда задание доступно, агент скачивает задание и маркер OAuth для конкретного задания. Azure Pipelines/Azure DevOps Server создает кратковременный маркер для идентификатора с областью действия, указанного в конвейере. Маркер используется агентом для доступа или изменения ресурсов в Azure Pipelines или Azure DevOps Server в этом задании. Например, для доступа к исходному коду или отправке результатов теста.

  3. Агент удаляет маркер 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.

Интерактивный процесс и служба

Локальный агент можно запустить как службу или как интерактивный процесс.

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

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

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

    Примечание.

    При включении автоматического входа в систему или отключении средства сохранения экрана возникают риски безопасности, так как вы позволяете другим пользователям переходить к компьютеру и использовать учетную запись, которая автоматически входит в систему. Если агент настроен для работы таким образом, то вам необходимо обеспечить физическую защиту компьютера. Например, в безопасном объекте. Если вы используете удаленный рабочий стол для доступа к компьютеру, на котором работает агент с автоматическим входом, просто закрывая удаленный рабочий стол, компьютер будет заблокирован и все тесты пользовательского интерфейса, выполняемые в этом агенте, могут завершиться ошибкой. Чтобы избежать этого, используйте команду 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 может автоматически обновлять локальные агенты. Этот параметр можно настроить в пулах агентов, выбрать агент, параметры — по умолчанию включен. Обновление запрашивается, когда компонент платформы или одна из задач, используемых в конвейере, требует более новой версии агента.

При интерактивном запуске локального агента или при наличии более новой основной версии агента, возможно, потребуется вручную обновить агенты. Вы можете легко обновить агенты на вкладке пулов агентов в вашей организации. Конвейеры не могут выполняться без совместимого агента

Обновление локальных агентов

  1. Перейдите к параметрам проекта, пулам агентов.

    Параметры проекта, пулы агентов

  2. Выберите пул агентов и нажмите кнопку "Обновить все агенты".

    Обновление всех агентов

    Вы также можете обновить агенты по отдельности, выбрав "Обновить агент " в меню ... .

    Агент обновления

  3. Выберите "Обновить", чтобы подтвердить обновление.

    Обновление подтверждения всех агентов

  4. Запрос на обновление помещается в очередь для каждого агента в пуле и выполняется при завершении всех выполняемых в данный момент заданий. Обновление обычно занимает всего несколько минут . Достаточно долго, чтобы скачать последнюю версию программного обеспечения агента (примерно 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

Создайте папку "Агенты", если она отсутствует.

Вопросы и ответы

Разделы справки убедитесь, что у меня установлена последняя версия агента версии 2?

  1. Перейдите на вкладку пулов агентов :

    1. Войдите в свою организацию (https://dev.azure.com/{yourorganization}).

    2. Выберите Azure DevOps, параметры организации.

      Выберите параметры организации.

    3. Выберите пулы агентов.

      Перейдите на вкладку

    1. Войдите в коллекцию проектов (http://your-server/DefaultCollection).

    2. Выберите Azure DevOps, параметры коллекции.

      Выберите параметры коллекции.

    3. Выберите пулы агентов.

      Выберите пулы агентов.

    1. Выберите Azure DevOps, параметры коллекции.

      Параметры коллекции, 2019.

    2. Выберите пулы агентов.

      Выберите пулы агентов, 2019.

  2. Щелкните пул, содержащий агент.

  3. Убедитесь, что агент включен.

  4. Перейдите на вкладку возможностей:

    1. На вкладке пулов агентов выберите нужный пул агентов .

      В пулах агентов выберите нужный пул агентов.

    2. Выберите агенты и выберите нужный агент.

      Выберите агенты и выберите агент.

    3. Перейдите на вкладку " Возможности".

      Перейдите на вкладку

      Примечание.

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

    1. На вкладке пулов агентов выберите нужный пул.

      Выберите нужный пул.

    2. Выберите агенты и выберите нужный агент.

      Выберите агенты и выберите нужный агент.

    3. Перейдите на вкладку " Возможности".

      Вкладка возможностей агента.

    1. На вкладке пулов агентов выберите нужный пул.

      Выберите нужную вкладку 2019.

    2. Выберите агенты и выберите нужный агент.

      Выберите нужный агент, 2019.

    3. Перейдите на вкладку " Возможности".

      Перейдите на вкладку

  5. Agent.Version Найдите возможность. Это значение можно проверить на наличие последней опубликованной версии агента. Ознакомьтесь с агентом Azure Pipelines и проверьте страницу с наибольшим номером версии, указанным в списке.

  6. Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите "Обновить все агенты".

Можно ли обновить агенты версии 2, которые являются частью пула серверов Azure DevOps?

Да. Начиная с Azure DevOps Server 2019, можно настроить сервер для поиска файлов пакета агента на локальном диске. Эта конфигурация переопределит версию по умолчанию, которая была связана с сервером во время выпуска. Этот сценарий также применяется, если сервер не имеет доступа к Интернету.

  1. С компьютера с доступом к Интернету скачайте последнюю версию файлов пакета агента (в .zip или .tar.gz форме) на странице выпусков агента Azure Pipelines GitHub.

  2. Передайте скачанные файлы пакетов на каждый уровень приложений Azure DevOps Server с помощью выбранного метода (например, USB-накопителя, передачи сети и т. д.). Поместите файлы агента в папку %ProgramData%\Microsoft\Azure DevOps\Agents . Создайте папку "Агенты", если она отсутствует.

  3. Все готово! Сервер 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 .