Можно ли установить один частный агент из VSTS на несколько виртуальных машин?

Я установил агент на виртуальную машину и настроил конвейер сборки CI. Пайплайн сработал и работает отлично.

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

Как будет выполняться сборка и на какую виртуальную машину будет скопирован источник?

Спасибо.


person Amruta    schedule 25.09.2018    source источник
comment
Тот же агент, но другая ВМ? Почему? У каждой виртуальной машины должен быть свой агент, а затем вся виртуальная машина должна быть в пуле агентов. У вас не может быть агента, работающего на нескольких машинах, поскольку это технически невозможно.   -  person Lex Li    schedule 25.09.2018
comment
Какую проблему ты пытаешься решить? У другой виртуальной машины будет другой агент, точка.   -  person Daniel Mann    schedule 25.09.2018
comment
Когда она говорит тот же агент, я предположил, что она имела в виду копию или идентичного агента. Например, если у вас есть два одинаковых файла на двух компьютерах. Они не одинаковы физически, но они одинаковы в том, что они идентичны.   -  person Dan Friedman    schedule 26.09.2018


Ответы (3)


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

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

введите здесь описание изображения

person DanDan    schedule 26.09.2018

НЕТ. Предполагается, что эти частные агенты имеют уникальное имя и назначаются пулу / очереди агентов. Они опрашивают сервер VSTS / Azure Devops, если у них есть работа. Затем они его исполняют. Если вы клонируете машину с тем же частным агентом сборки, то теоретически агент, который ее поднимает, выполнит задание, но это теоретически. Я действительно не знаю, как с этим справятся очереди агентов.

Это зависит от того, чем вы хотите заниматься.

  1. Если вы хотите распределить рабочую нагрузку, например, 2 сервера сборки, и чтобы сборки переходили на тот сервер сборки, который не занят, вы должны создать 1 пул агентов / очередь. Создайте частного агента на одном сервере и зарегистрируйте его в этом пуле, затем на втором сервере отмените регистрацию агента и затем повторно зарегистрируйте агента, добавив его в ТО ЖЕ пул.

  2. Если вы хотите выполнять работу на 2 серверах одновременно, например, развертывание на 2 серверах одновременно, вы должны создать «группу развертывания» и добавить к ней оба сервера. Вы должны отменить регистрацию обоих агентов из пула / очереди агентов. Из своей «Группы развертывания» скопируйте фрагмент сценария PowerShell и запустите его на каждом компьютере. Таким образом, вы можете использовать это в конвейере выпуска и развертываниях параллельно, что займет меньше времени на развертывание.

person Antebios    schedule 26.09.2018

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

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

person Dan Friedman    schedule 25.09.2018