87 votes

Exécuter plusieurs agents TeamCity sur le même ordinateur ?

Nous avons plusieurs machines de construction, chacune exécutant un seul agent de construction TeamCity. Chaque machine est très puissante, et nous aimerions exécuter plusieurs agents de construction sur la même machine.

Est-ce possible ? sans utiliser la virtualisation ? Existe-t-il des alternatives de qualité à TeamCity qui supportent cela ?

133voto

CrazyCoder Points 103123

Oui, c'est possible :

Plusieurs agents peuvent être installés sur une seule machine. Ils fonctionnent comme des agents distincts et TeamCity travaille avec eux comme des agents différents, sans utiliser le fait qu'ils partagent la même machine. Après avoir installé un agent, vous pouvez en installer d'autres, à condition que les conditions suivantes soient remplies :

  • les agents sont installés dans des répertoires distincts
  • ils ont des répertoires de travail et d'intérim distincts
  • buildAgent.properties est configuré pour avoir des valeurs différentes pour les propriétés name et ownPort

Assurez-vous qu'il n'y a pas de configurations de construction pour lesquelles un répertoire de vérification absolu est spécifié (ou bien, assurez-vous que ces configurations de construction ont l'option "clean checkout" activée et qu'elles ne peuvent pas être exécutées en parallèle).

Sous Windows, pour installer des agents supplémentaires en tant que services, modifiez [agent dir] \launcher\conf\wrapper.conf pour modifier les propriétés afin d'avoir un nom distinct au sein de l'ordinateur :

  • wrapper.console.title
  • nom du wrapper.ntservice
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description

0 votes

C'est juste une remarque, mais gardez à l'esprit qu'il y a peu d'avantages à faire cela si votre machine agent ne dispose pas des ressources nécessaires. Par exemple, une machine virtuelle à un seul cœur ne parcourra pas une file d'attente de construction avec trois agents beaucoup plus rapidement qu'avec un seul.

13 votes

Si vous avez installé vos agents sans savoir ce qui précède (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 la réponse ci-dessus indique pour chaque agent. Après cela, exécutez "service.start.bat" sur chaque agent.

2 votes

Brillant. Mais il est étrange que l'installation de plusieurs agents ne soit pas prise en charge par l'assistant d'installation.

30voto

kay.one Points 3498

Vous pouvez également consulter cet article de blog pour obtenir un guide étape par étape.

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

1 votes

Je suis heureux que cet article de blog ait aidé certaines personnes. Cependant, en suivant les instructions, j'ai détruit mon service existant. Même après une désinstallation complète des deux services, la suppression des deux répertoires et la réinstallation du seul service d'origine, certains travaux qui fonctionnaient bien avant que je ne commence tout cela ne sont toujours pas exécutés. Je recommande vivement la solution proposée dans la réponse la plus votée.

3voto

dragon788 Points 1102

La réponse du haut est la méthode correcte, mais si vous souhaitez effectuer cette opération plus facilement, vous pouvez utiliser la méthode suivante Paquet Chocolatey de TeamCityAgent et fournir le nom de l'agent, le dossier de l'agent et le port en tant que --params et il s'occupera de la mise en place des fichiers de configuration ainsi que de la mise à disposition de la version requise de Java via la fonction server-jre paquet.

Le seul problème 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 comme une "nouvelle" installation.

Vous devrez également utiliser --version 2.0.1-beta-05 puisque ce système est encore en phase de test, mais devrait sortir de la phase bêta prochainement.

Exemple d'installation complète d'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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X