2009-11-24 5 views
76

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

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

ответ

118

Да, it's possible:

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

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

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

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

  • обертки. console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description
+1

Спасибо, это работало довольно легко для меня. – Alexis

+0

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

+11

Если вы ушли и установили своих агентов, не зная выше (как и я), запустите «service.uninstall.bat» в установленном агенте Build в каталоге/bin, затем выполните то, что говорит выше ответ для каждого агента. После этого запустите «service.start.bat» для каждого агента. – Brandon

28

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

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

+1

Нашел этот пост, чтобы быть самым полезным ... спасибо –

+0

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

1

Верхний ответ правильный метод, но если вы хотите, чтобы завершить это более легко можно использовать TeamCityAgent Chocolatey package и укажите имя агента, папку агента и порт как --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

Смежные вопросы