Агенты Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Примечание

В Microsoft Team Foundation Server (TFS) 2018 и предыдущих версий конвейеры сборки и выпуска называются определениями, выполнения называются сборками, подключения к службам называются конечными точками служб, этапы называются средами, а задания называются этапами.

Чтобы создать код или развернуть программное обеспечение с помощью Azure Pipelines, вам потребуется по крайней мере один агент. По мере добавления кода и пользователей в конечном итоге вам потребуется больше агентов.

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

Размещенные агенты Майкрософт

Если конвейеры находятся в 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 не требует более поздней версии агента.

Мы поддерживаем только последнюю версию агента, так как это единственная версия гарантированно содержит все актуальные исправления и исправления ошибок.

Агенты масштабируемых наборов виртуальных машин Azure

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

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

Дополнительные сведения см. в статье Агенты масштабируемых наборов виртуальных машин Azure.

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

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

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

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

Важно!

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

Возможности

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

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

Примечание

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

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

Примечание

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

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

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

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

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

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

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

      Выберите вкладку

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

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

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

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

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

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

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

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

    1. Перейдите к проекту и выберите "Параметры " (значок шестеренки) >"Очереди агента".

      Выберите

    2. Выберите "Управление пулами".

      Выберите

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

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

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

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

      Выберите

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

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

      Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Вкладка

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

Совет

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

Связь

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

Взаимодействие с TFS

Агент обменивается данными с 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, защищены с помощью асимметричного шифрования. Каждый агент имеет пару из открытого и закрытого ключей, причем открытый ключ обменивается данными с сервером во время регистрации. С помощью открытого ключа сервер шифрует полезные данные задания перед отправкой в агент. Агент расшифровывает содержимое задания с помощью соответствующего закрытого ключа. Таким образом секреты, хранящиеся в конвейерах или группах переменных, защищаются во время обмена данными с агентом.

Обмен данными для развертывания на целевых серверах

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

Примечание

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

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

Подключение к агенту для локальных сред

Аутентификация

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

Агент может пройти проверку подлинности в Azure Pipelines с помощью следующего метода:

Агент может пройти проверку подлинности в Azure DevOps Server или TFS с помощью одного из следующих методов:

Личный маркер доступа (PAT):

Создайте и используйте PAT для подключения агента к Azure Pipelines или TFS 2017 и более поздней версии. Личный маркер доступа — это единственная схема, которая поддерживается в Azure Pipelines. У PAT должна быть область действия пулов агентов (чтение, управление) (для агента группы развертывания , у PAT должна быть область развертывания (чтение, управление), а один PAT можно использовать для регистрации нескольких агентов, НОТ используется только во время регистрации агента, а не для последующего обмена данными. Дополнительные сведения см. в разделе "Проверка подлинности с помощью личного маркера доступа( PAT) в статьях о локальных агентах Windows, Linux или macOS .

Чтобы использовать личный маркер доступа с Azure DevOps Server, сервер должен быть настроен с помощью протокола HTTPS. См. параметры и безопасность веб-сайта.

Интегрированная

Подключите агент Windows к TFS, используя учетные данные вошедшего пользователя через схему проверка подлинности Windows, например NTLM или Kerberos.

Чтобы использовать этот метод проверки подлинности, необходимо сначала настроить сервер TFS.

  1. Войдите на компьютер, на котором выполняется TFS.

  2. Запустите диспетчер служб IIS. Выберите сайт TFS и убедитесь, что проверка подлинности Windows включена с помощью допустимого поставщика, например NTLM или Kerberos.

Проверка подлинности windows служб IIS TFS

Проверка подлинности Windows iis TFS с помощью поставщика ntlm

Согласование

Подключитесь к TFS как пользователю, отличному от вошедшего пользователя, через схему проверка подлинности Windows, например NTLM или Kerberos.

Чтобы использовать этот метод проверки подлинности, необходимо сначала настроить сервер TFS.

  1. Войдите на компьютер, на котором выполняется TFS.

  2. Запустите диспетчер служб IIS. Выберите сайт TFS и убедитесь, что проверка подлинности Windows включена с помощью поставщика согласований и с помощью другого метода, например NTLM или Kerberos.

Проверка подлинности windows служб IIS TFS

Проверка подлинности Windows служб IIS TFS с помощью согласования и поставщика ntlm

Альтернативный

Подключитесь к TFS с помощью обычной проверки подлинности. Чтобы использовать этот метод, необходимо сначала настроить ПРОТОКОЛ HTTPS в TFS.

Чтобы использовать этот метод проверки подлинности, необходимо настроить сервер TFS следующим образом:

  1. Войдите на компьютер, на котором выполняется TFS.

  2. Настройте обычную проверку подлинности. См. статью "Использование для tfx Team Foundation Server 2015" с использованием обычной проверки подлинности.

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

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

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

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

    Примечание

    При включении автоматического входа в систему или отключении средства сохранения экрана возникают риски безопасности, так как вы позволяете другим пользователям переходить к компьютеру и использовать учетную запись, которая автоматически входит в систему. Если агент настроен для работы таким образом, то вам необходимо обеспечить физическую защиту компьютера. Например, в безопасном объекте. Если вы используете удаленный рабочий стол для доступа к компьютеру, на котором работает агент с автоматическим входом, простое закрытие удаленного рабочего стола приведет к блокировке компьютера, и все тесты пользовательского интерфейса, выполняемые в этом агенте, могут завершиться сбоем. Чтобы избежать этого, используйте команду tscon для отключения от удаленного рабочего стола. Пример:

    %windir%\System32\tscon.exe 1 /dest:console

Учетная запись агента

Независимо от того, запускаете ли агент как службу или в интерактивном режиме, можно выбрать учетную запись компьютера, используемую для запуска агента. (Обратите внимание, что это отличается от учетных данных, используемых при регистрации агента в Azure Pipelines или Azure DevOps Server.) Выбор учетной записи агента зависит исключительно от потребностей задач, выполняемых в заданиях сборки и развертывания.

Например, чтобы выполнять задачи, использующие проверка подлинности Windows для доступа к внешней службе, необходимо запустить агент с помощью учетной записи, которая имеет доступ к этой службе. Однако при выполнении тестов пользовательского интерфейса, таких как Selenium или закодированные тесты пользовательского интерфейса, для которых требуется браузер, браузер запускается в контексте учетной записи агента.

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

Версия агента и обновления

Мы обновляем программное обеспечение агента каждые несколько недель в Azure Pipelines. Мы указываем версию агента в формате {major}.{minor}. Например, если используется 2.1версия агента, основная версия — 2, а дополнительная — 1.

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

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

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

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

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

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

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

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

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

  3. Нажмите кнопку "Обновить" , чтобы подтвердить обновление.

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

  4. Запрос на обновление помещается в очередь для каждого агента в пуле, который выполняется при завершении любых выполняющихся в данный момент заданий. Обновление обычно занимает всего несколько секунд — достаточно долго, чтобы скачать последнюю версию программного обеспечения агента (примерно 200 МБ), распакуйте его и перезапустите агент с новой версией. Состояние агентов можно отслеживать на вкладке "Агенты ".

Мы обновляем программное обеспечение агента с каждым обновлением в Azure DevOps Server и TFS. Мы указываем версию агента в формате {major}.{minor}. Например, если используется 2.1версия агента, то основная версия — 2, а дополнительная — 1.

Если сервер Azure DevOps Server или TFS имеет более новую версию агента, а новый агент отличается только в дополнительной версии, он обычно может быть автоматически обновлен. Обновление запрашивается, если для компонента платформы или одной из задач, используемых в конвейере, требуется более новая версия агента. Начиная с Azure DevOps Server 2019 г., вам не придется ждать нового выпуска сервера. Вы можете отправить новую версию агента на уровень приложения, и эта версия будет предлагаться в качестве обновления.

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

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

Чтобы активировать обновление агента программным способом, можно использовать API обновления агента, как описано в разделе "Как активировать обновления агента программным способом для конкретного пула агентов?".

Примечание

Для серверов без доступа к Интернету вручную скопируйте ZIP-файл агента для C:\ProgramData\Microsoft\Azure DevOps\Agents\ использования в качестве локального файла.

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

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

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

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

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

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

      Выберите вкладку

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

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

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

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

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

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

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

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

    1. Перейдите к проекту и выберите "Параметры " (значок шестеренки) >"Очереди агента".

      Выберите

    2. Выберите "Управление пулами".

      Выберите

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

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

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

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

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

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

      Выберите

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

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

      Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Вкладка

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

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

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

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

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

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

  3. Все готово! Теперь Azure DevOps Server будет использовать локальные файлы при каждом обновлении агентов. Каждый агент автоматически обновляется при выполнении задачи, требующей более новой версии агента. Но если вы хотите вручную обновить некоторые агенты, щелкните пул правой кнопкой мыши и выберите команду "Обновить все агенты".

Есть ли у локальных агентов преимущества в плане производительности по сравнению с агентами, размещенными на серверах Майкрософт?

Во многих случаях да. В частности:

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

  • Для запуска вашей сборки агенту, размещенному на сервере Майкрософт, может потребоваться больше времени. Хотя для назначения задания агенту, размещенного в Майкрософт, часто требуется всего несколько секунд, иногда может потребоваться несколько минут, чтобы агент был выделен в зависимости от нагрузки на нашу систему.

Можно ли установить несколько локальных агентов на одном компьютере?

Да. Этот подход хорошо подходит для агентов, выполняющих задания, которые не потребляют много общих ресурсов. Например, можно попробовать использовать его для агентов, запускающих выпуски, которые в основном оркестрируют развертывания и не выполняют большого объема работ непосредственно на агенте.

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

Кроме того, могут возникнуть проблемы, если параллельные задания сборки используют одноэлементное развертывание средства, например пакеты 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

Параметры URI

Имя В Обязательно Тип Описание
agentId query Неверно строка Агент для обновления. Если этот параметр не указан, обновление будет активировано для всех агентов.
organization path True строка Название организации Azure DevOps.
poolId path True целое число (int32) Используемый пул агентов
api-version query Неверно строка Используемая версия API. Для использования этой версии API необходимо задать значение 6.0.

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

Примечание

Агент Azure Pipelines открытый код на сайте GitHub.

Дополнительные сведения

Дополнительные сведения об агентах см. в следующих модулях из приложения сборки с помощью схемы обучения Azure DevOps .