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


86

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

Чи можливо це без використання віртуалізації ? Чи існують якісні альтернативи TeamCity, які підтримують це?

Відповіді:


133

Так, можливо :

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

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

Переконайтеся, що в конфігураціях збірки не вказано абсолютний каталог перевірки (альтернативно, переконайтеся, що такі конфігурації збірки мають параметр "чисте замовлення" і не можуть запускатися паралельно).

У Windows, щоб встановити додаткові агенти як служби, змініть [agent dir] \ launcher \ conf \ wrapper.conf, щоб змінити властивості, щоб мати окреме ім'я в комп'ютері:

  • обгортка.консоль.заголовок
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description

Просто зауваження, але майте на увазі, що робити це мало, якщо ваша машина-агент не має необхідних ресурсів. Наприклад, одноядерна віртуальна машина не працюватиме через чергу збирання з трьома агентами набагато швидше, ніж з одним.
bopapa_1979

13
Якщо ви пішли і встановили свої агенти, не знаючи вищезазначеного (як я це зробив), запустіть "service.uninstall.bat" на встановленому Агенті збірки в каталозі / bin, а потім виконайте те, що вказано у відповіді вище для кожного агента. Після цього запустіть "service.start.bat" на кожному агенті.
Брендон

2
Блискуче. Але дивно, що встановлення декількох агентів не підтримується майстром встановлення.
Jesper Mygind

Радимо повідомити, що у вас може виникнути проблема з новим агентом після його встановлення, помилка типу "Агент Teamcity у відключеному стані (Агент зареєстровано (оновить))". Це можна вирішити, зупинивши агент fisrt (або інші встановлені агенти) та перезапустивши новий із служб (на 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.