Запускаете несколько агентов TeamCity на одном компьютере?

86

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

Возможно ли это без использования виртуализации ? Существуют ли качественные альтернативы TeamCity, поддерживающие это?

потрошитель234
источник

Ответы:

133

Да, это возможно :

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

  • агенты устанавливаются в отдельные каталоги
  • у них есть отличительные рабочие и временные каталоги
  • buildAgent.properties настроен так, чтобы иметь разные значения для свойств name и ownPort

Убедитесь, что нет конфигураций сборки, в которых указан абсолютный каталог проверки (в качестве альтернативы, убедитесь, что для таких конфигураций сборки включена опция «чистая проверка», и они не могут выполняться параллельно).

В Windows, чтобы установить дополнительные агенты как службы, измените [каталог агента] \ launcher \ conf \ wrapper.conf, чтобы изменить свойства, чтобы они имели разные имена на компьютере:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description
CrazyCoder
источник
Просто замечание, но имейте в виду, что от этого мало пользы, если на вашей агентской машине нет необходимых ресурсов. Например, одноядерная виртуальная машина не будет работать через очередь сборки с тремя агентами намного быстрее, чем с одним.
bopapa_1979
13
Если вы установили свои агенты, не зная вышеизложенного (как я), запустите «service.uninstall.bat» на установленном Агенте сборки в каталоге / bin, а затем выполните то, что указано в ответе выше для каждого агента. После этого запустите service.start.bat на каждом агенте.
Brandon
2
Блестяще. Но странно, что установка нескольких агентов не поддерживается мастером установки.
Jesper Mygind
Хорошо бы сообщить, что у вас может возникнуть проблема с новым агентом после его установки, ошибка типа «Агент Teamcity отключен (агент не зарегистрирован (будет обновлен))». Это можно решить, остановив первый агент (или другие установленные агенты) и перезапустив новый из служб (в Windows / Windows Server). Это установит для вашего нового агента значение "Отключено" на "Подключено".
Сантьяго
Внимание: « Если вы используете установщик Windows для установки дополнительных агентов и хотите запустить агент как службу, вам нужно будет выполнить шаги вручную, поскольку установка второго агента как службы на том же компьютере не поддерживается установщиком: существующая служба перезаписывается ". См confluence.jetbrains.com/display/TCD10//... \
rsenna
30

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

http://handcraftsman.wordpress.com/2010/07/20/multiple-teamcity-build-agents-on-one-server/

Кей один
источник
1
Я рад, что этот пост в блоге помог некоторым людям. Однако следование указаниям в нем разрушило мою существующую службу. Даже после полного удаления обеих служб, удаления двух каталогов и переустановки только исходной службы он все равно не будет запускать некоторые задания, которые работали нормально до того, как я начал все это. Я настоятельно рекомендую решение из ответа, получившего наибольшее количество голосов.
sirdank
3

Верхний ответ - правильный метод, но если вы хотите сделать это проще, вы можете использовать пакет TeamCityAgent Chocolatey и указать имя агента, папку агента и порт, --paramsи он будет обрабатывать настройку файлов конфигурации, а также извлекать в нужной версии Java через server-jreпакет.

Единственное предостережение - вам необходимо использовать его --forceпри любых установках после первого агента, так как Chocolatey в настоящее время не понимает установку того же приложения с другой конфигурацией как «новую» установку.

Вам также нужно будет использовать, --version 2.0.1-beta-05так как он все еще находится на стадии тестирования, но скоро должен выйти из бета-версии.

Пример полной установки второго агента: choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05

дракон788
источник