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

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

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

Ответ 1

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

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

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

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

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

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description

Ответ 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