同じコンピューターで複数のTeamCityエージェントを実行していますか?


86

複数のビルドマシンがあり、それぞれが単一のTeamCityビルドエージェントを実行しています。各マシンは非常に強力であり、同じマシンで複数のビルドエージェントを実行したいと考えています。

仮想化を使用せずにこれは可能ですか?これをサポートするTeamCityの高品質な代替手段はありますか?

回答:


133

はい、それは可能です:

1台のマシンに複数のエージェントをインストールできます。それらは別々のエージェントとして機能し、TeamCityは、同じマシンを共有するという事実を利用せずに、異なるエージェントとしてそれらと連携します。1つのエージェントをインストールした後、次の条件が満たされていれば、追加のエージェントをインストールできます。

  • エージェントは別のディレクトリにインストールされます
  • 彼らは独特の仕事と一時的なディレクトリを持っています
  • buildAgent.propertiesは、nameプロパティとownPortプロパティに異なる値を持つように構成されています

絶対チェックアウトディレクトリが指定されているビルド構成がないことを確認してください(または、そのようなビルド構成で「クリーンチェックアウト」オプションが有効になっていて、並行して実行できないことを確認してください)。

Windowsで、追加のエージェントをサービスとしてインストールするには、[agent dir] \ launcher \ conf \ wrapper.conf を変更してプロパティを変更してコンピューター内で個別の名前を付けます。

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

ただの注意ですが、エージェントマシンに必要なリソースがない場合、これを行うメリットはほとんどないことに注意してください。たとえば、シングルコアVMは、1つのエージェントよりも3つのエージェントのビルドキューを介してはるかに高速に機能しません。
bopapa_1979 2013年

13
上記を知らずにエージェントをインストールした場合(私が行ったように)、インストールされているビルドエージェントの/ binディレクトリで「service.uninstall.bat」を実行し、エージェントごとに上記の回答を実行します。その後、各エージェントで「service.start.bat」を実行します。
ブランドン

2
鮮やかさ。しかし、複数のエージェントのインストールがインストールウィザードでサポートされていないのは奇妙なことです。
Jesper Mygind 2017

新しいエージェントをインストールした後、「Teamcityエージェントが切断された状態です(エージェントが登録解除されました(アップグレードされます))」などのエラーが発生する可能性があることに注意してください。これは、fisrtエージェント(またはインストールされている他のエージェント)を停止し、サービス(Windows / Windows Server)から新しいエージェントを再起動することで解決できます。これにより、新しいエージェントが切断済みから接続済みに設定されます。
サンティアゴレベラ2017年

重要:「Windowsインストーラーを使用して追加のエージェントをインストールし、エージェントをサービスとして実行する場合は、同じマシンに2番目のエージェントをサービスとしてインストールすることはインストーラーでサポートされていないため、手動の手順を実行する必要があります:既存のサービス上書きされます」。参照confluence.jetbrains.com/display/TCD10//... \
rsenna

30

ステップバイステップガイドについては、このブログ投稿もご覧ください。

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


1
このブログ投稿が何人かの人々を助けてくれてうれしいです。しかし、その指示に従うと、私の既存のサービスが台無しになりました。両方のサービスを完全にアンインストールし、2つのディレクトリを削除し、元のサービスのみを再インストールした後でも、これをすべて開始する前に正常に機能していた一部のジョブは実行されません。投票数の多い回答からの解決策を強くお勧めします。
sirdank 2016

3

一番の答えは正しい方法ですが、これをより簡単に完了したい場合は、TeamCityAgent Chocolateyパッケージを使用して、エージェント名、エージェントフォルダー、およびポートを指定する--paramsと、構成ファイルのセットアップとプルが処理されます。server-jreパッケージを介して必要なバージョンのJavaで。

--forceChocolateyは現在、同じアプリケーションを異なる構成で「新規」インストールとしてインストールすることを理解していないため、これに対する1つの注意点は、最初のエージェントの後のインストールで使用する必要があることです。

--version 2.0.1-beta-05これはまだテスト段階であるため、使用する必要がありますが、まもなくベータ版が終了するはずです。

2番目のエージェントの完全なインストール例: choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.