Korzystasz z wielu agentów TeamCity na tym samym komputerze?

86

Mamy kilka maszyn do budowania, z których każdy ma jednego agenta kompilacji TeamCity. Każda maszyna jest bardzo mocna i chcielibyśmy uruchomić kilka agentów kompilacji na tej samej maszynie.

Czy jest to możliwe bez wirtualizacji ? Czy istnieją jakościowe alternatywy dla TeamCity, które to obsługują?

zrywak234
źródło

Odpowiedzi:

133

Tak, to możliwe :

Na jednym komputerze można zainstalować kilka agentów. Działają jako oddzielni agenci, a TeamCity współpracuje z nimi jako różnymi agentami, nie wykorzystując faktu, że korzystają z tego samego komputera. Po zainstalowaniu jednego agenta można zainstalować kolejnego, pod warunkiem spełnienia następujących warunków:

  • agenty są instalowane w oddzielnych katalogach
  • mają charakterystyczne katalogi pracy i tymczasowe
  • buildAgent.properties jest skonfigurowany tak, aby miał różne wartości dla właściwości name i ownPort

Upewnij się, że nie ma konfiguracji kompilacji, które mają określony katalog bezwzględnego pobierania (alternatywnie upewnij się, że takie konfiguracje kompilacji mają włączoną opcję „czyste pobieranie” i nie mogą być uruchamiane równolegle).

W systemie Windows, aby zainstalować dodatkowe agenty jako usługi, zmodyfikuj [katalog agenta] \ launcher \ conf \ wrapper.conf, aby zmienić właściwości tak, aby miały inną nazwę w komputerze:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description
CrazyCoder
źródło
Tylko uwaga, ale pamiętaj, że zrobienie tego nie przyniesie niewielkich korzyści, jeśli komputer agenta nie ma niezbędnych zasobów. Na przykład jednordzeniowa maszyna wirtualna nie będzie działać przez kolejkę kompilacji z trzema agentami znacznie szybciej niż z jednym.
bopapa_1979
13
Jeśli odszedłeś i zainstalowałeś agenty, nie wiedząc o tym powyżej (tak jak ja), uruchom „service.uninstall.bat” na zainstalowanym agencie kompilacji w katalogu / bin, a następnie wykonaj powyższe czynności dla każdego agenta. Następnie uruchom plik „service.start.bat” na każdym agencie.
Brandon,
2
Znakomity. Ale dziwne, że instalowanie wielu agentów nie jest obsługiwane przez kreator instalacji.
Jesper Mygind
Warto zauważyć, że po zainstalowaniu nowego agenta może wystąpić problem, taki jak „Agent Teamcity w stanie rozłączonym (agent wyrejestrował się (dokona aktualizacji))”. Można to rozwiązać, zatrzymując pierwszego agenta (lub innych zainstalowanych agentów) i ponownie uruchamiając nowy z usług (w systemie Windows / Windows Server). Spowoduje to ustawienie nowego agenta z Rozłączony na Połączony.
Santiago Rebella
Uwaga: „ Jeśli używasz instalatora Windows do zainstalowania dodatkowych agentów i chcesz uruchomić agenta jako usługę, musisz wykonać ręczne kroki, ponieważ instalowanie drugiego agenta jako usługi na tym samym komputerze nie jest obsługiwane przez instalator: istniejąca usługa jest nadpisany ”. Zobacz confluence.jetbrains.com/display/TCD10//… \
rsenna
30

Możesz również rzucić okiem na ten wpis na blogu zawierający przewodnik krok po kroku

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

kay.one
źródło
1
Cieszę się, że ten wpis na blogu pomógł niektórym ludziom. Jednak postępowanie zgodnie ze wskazówkami zrujnowało moją dotychczasową usługę. Nawet po całkowitym odinstalowaniu obu usług, usunięciu dwóch katalogów i ponownym zainstalowaniu tylko oryginalnej usługi, nadal nie będzie uruchamiać niektórych zadań, które działały dobrze, zanim zacząłem to wszystko. Gorąco polecam rozwiązanie z odpowiedzi, która uzyskała najwięcej głosów.
sirdank
3

Najlepsza odpowiedź to poprawna metoda, ale jeśli chcesz to zrobić łatwiej, możesz użyć pakietu TeamCityAgent Chocolatey i podać nazwę agenta, folder agenta i port, --paramsa on zajmie się konfiguracją plików konfiguracyjnych, a także ściąganiem w wymaganej wersji Java za pośrednictwem server-jrepakietu.

Jedynym zastrzeżeniem jest to, że musisz użyć go --forcewe wszystkich instalacjach po pierwszym agencie, ponieważ Chocolatey obecnie nie rozumie instalowania tej samej aplikacji z inną konfiguracją jako „nowej” instalacji.

Będziesz także musiał użyć, --version 2.0.1-beta-05ponieważ jest to wciąż w fazie testów, ale wkrótce powinno wyjść z wersji beta.

Przykład pełnej instalacji dla drugiego agenta: choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05

dragon788
źródło