2009-11-24 4 views
76

Nous avons plusieurs machines de construction, chacune exécutant un seul agent de build TeamCity. Chaque machine est très puissante et nous aimerions faire tourner plusieurs agents de construction sur la même machine. Est-ce possible, sans utiliser la virtualisation?? Y a-t-il des alternatives de qualité à TeamCity qui supportent cela?Exécution de plusieurs agents TeamCity sur le même ordinateur?

Répondre

118

Oui, it's possible:

Plusieurs agents peuvent être installés sur une seule machine. Ils fonctionnent comme des agents distincts et TeamCity travaille avec eux en tant qu'agents différents, n'utilisant pas le fait qu'ils partagent la même machine. Après avoir installé un agent, vous pouvez installer une supplémentaire, si les conditions suivantes sont remplies:

  • les agents sont installés dans les répertoires distincts
  • ils ont du travail distinctifs et répertoires temporaires
  • buildAgent.properties est configuré pour avoir des valeurs différentes pour les propriétés name et ownPort

Assurez-vous qu'il n'existe aucune configuration de build ayant un répertoire de contrôle absolu spécifié (sinon, assurez-vous que cette configuration de build ns ont l'option "checkout propre" activée et ils ne peuvent pas être exécutés en parallèle).

Sous Windows, pour installer des agents supplémentaires comme les services, modifier [Agent dir] \ lance \ conf \ wrapper.conf pour modifier les propriétés d'avoir le nom distinct au sein de l'ordinateur:

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

Merci, cela a fonctionné assez facilement pour moi. – Alexis

+0

Juste une remarque, mais gardez à l'esprit qu'il y a peu d'avantages à le faire si votre machine agent n'a pas les ressources nécessaires. Par exemple, une machine virtuelle à cœur unique ne fonctionnera pas dans une file d'attente de génération avec trois agents beaucoup plus rapidement qu'avec une seule. –

+11

Si vous avez installé et installé vos agents sans le savoir (comme je l'ai fait), exécutez "service.uninstall.bat" sur l'agent de construction installé dans le répertoire/bin, puis faites ce que dit la réponse ci-dessus pour chaque agent. Après cela, exécutez "service.start.bat" sur chaque agent. – Brandon

28

Vous pouvez également jeter un oeil à ce billet de blog pour le guide étape par étape

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

+1

Trouvé cet article pour être le plus utile ... merci –

+0

Je suis content que cet article de blog ait aidé certaines personnes. Cependant, en suivant les instructions, il a ruiné mon service existant. Même après une désinstallation complète des deux services, en supprimant les deux répertoires et en réinstallant uniquement le service d'origine, il n'exécutera toujours pas certaines tâches qui fonctionnaient correctement avant que je ne démarre tout cela. Je recommande fortement la solution de la réponse la plus votée. – sirdank

1

La partie supérieure réponse est la bonne méthode, mais si vous voulez compléter cela, vous pouvez plus facilement utiliser le TeamCityAgent Chocolatey package et fournir le nom de l'agent, le dossier de l'agent et le port comme --params et il gérera la configuration des fichiers de configuration ainsi que l'extraction de la version requise de Java via le package server-jre. Le seul inconvénient à cela est que vous devez utiliser --force sur toutes les installations après le premier agent car Chocolatey ne comprend pas actuellement l'installation de la même application avec une configuration différente d'une "nouvelle" installation.

Vous aurez également besoin d'utiliser --version 2.0.1-beta-05 car il est encore dans une phase de test, mais devrait bientôt sortir du bêta.

installation complète par exemple pour un deuxième agent: choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05

Questions connexes