Агенты Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

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

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

Azure Pipelines предоставляет несколько различных типов агентов.

Тип агента Description Availability
Размещенные агенты Майкрософт Агенты, размещенные и управляемые корпорацией Майкрософт Azure DevOps Services
Локальные агенты Агенты, настроенные и управляемые на виртуальных машинах Azure DevOps Services, Сервер Azure DevOps
Агенты масштабируемого набора виртуальных машин Azure Форма локальных агентов с помощью Azure Масштабируемые наборы виртуальных машин, которая может быть автоматически масштабирована для удовлетворения требований. Azure DevOps Services

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

Если конвейеры находятся в 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 10 в качестве универсального обработчика, однако клиенты по-прежнему могут использовать пользовательские задачи, использующие устаревшую библиотеку Node 6. Чтобы обеспечить обратную совместимость с node, которая в настоящее время достигла конца жизни, мы предоставляем следующие методы самообслуживания для установки указанного средства выполнения узла вручную.

  • Вручную установите средство выполнения Node 6. Дополнительные сведения об установке средства выполнения Node 6 вручную см. в статье о поддержке Node 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 или Azure DevOps Server, как показано на следующей схеме.

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

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

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

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

  • Личный маркер доступа
  • Альтернативные Подключение в Azure DevOps Server или TFS с помощью базовой проверки подлинности. При выборе альтернативного параметра вам будет предложено указать свои учетные данные.

Агенты Windows имеют следующие два дополнительных варианта проверки подлинности в Azure DevOps Server.

  • Согласование Подключение с Azure DevOps Server как пользователя, отличного от пользователя, вошедшего в систему, через схему проверка подлинности Windows, например 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

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

Независимо от того, выполняется ли агент в качестве службы или в интерактивном режиме, можно выбрать учетную запись компьютера, используемую для запуска агента. (Обратите внимание, что это отличается от учетных данных, используемых при регистрации агента в 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. Мы указываем версию агента в формате {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. Для использования этой версии API необходимо задать значение 6.0.

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

Примечание.

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

Подробнее

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