Запуск нескольких агентов 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
Ответ 2
Вы также можете взглянуть на это сообщение в блоге для пошагового руководства
http://handcraftsman.wordpress.com/2010/07/20/multiple-teamcity-build-agents-on-one-server/
Ответ 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