TeamCity 2019.1ヘルプ

追加のビルドエージェントの設定と実行

プロジェクトのカスタマイズとビルド構成の作成を始める前に、ビルドエージェントを構成する必要があります。エージェントのインストールに進む前に、エージェントとサーバー間の通信セクションと前提条件セクションを確認してください。

このページ:

前提条件

必要なOSと環境の権限

インストールの前に、競合するソフトウェアセクションを確認してください。何らかの課題が発生した場合は、競合するソフトウェアが使用されていないことを確認してください。

TeamCityビルドエージェントを実行するには、エージェントの実行に使用されるユーザーアカウントに次の権限が必要です。

ネットワーク

  • エージェントは、serverUrl プロパティーで指定されたサーバーアドレス(通常はサーバーのWeb UIと同じURL)を使用して、サーバーへの接続を開くことができなければなりません。サーバーへの要求に使用できる特定のURLは制限されるべきではありません。推奨リバースプロキシ設定も参照してください。

従来の双方向通信に関する注意事項

デフォルトでは、ポーリングプロトコルによる単方向のエージェントからサーバーへの接続がTeamCityによって使用されます。

エージェントからサーバーへの接続に加えて、従来の双方向通信 (非推奨)を使用する必要がある場合、サーバーはエージェントへのHTTP接続を開くことができる必要があります。エージェントポートは buildAgent.properties ファイルの ownPort プロパティーをデフォルトの開始ポート9090として使用して決定され、指定されたポートが使用中の場合は次のポートが使用され、次のIPアドレスが試行されます。

  • buildAgent.properties ファイルの ownAddress プロパティーで指定されたアドレス(ある場合)。

  • エージェントがサーバーへの接続を確立したときにサーバーが受信したHTTP要求の送信元IP。プロキシサーバーを使用する場合は、正しく設定する必要があります。

  • エージェントマシン上のネットワークインターフェースのアドレス。

エージェントがNATの背後にあり、エージェントマシンのネットワークインターフェースのどのアドレスからもアクセスできない場合は、 buildAgent.properties ファイルで ownAddress プロパティーを指定します。

エージェント、サーバーマシン、またはネットワークとネットワーク構成にインストールされているすべてのファイアウォールが、これらの要件を満たしていることを確認してください。

共通

エージェントプロセス(java)は以下のことを行います。

  • サーバーアドレスへのアウトバウンドHTTP接続を開くことができる ( buildAgent.properties ファイルで設定された、TeamCity UIを表示するためにブラウザで使用するのと同じアドレス)

  • 再帰的に以下のディレクトリーへのフルパーミッション(read / write / delete)を持つ: <agent home> (自動エージェントアップグレードおよびエージェントツールサポートに必要)、 <agent work> <agent temp> 、およびエージェントシステムディレクトリー ( buildAgent.properties ファイルの workDirtempDir、および systemDir パラメータで設定)

  • (ビルドを実行するための)プロセスを起動できるようにします。

  • 次の親プロセスでネストしたプロセスを起動できるようにする (これはエージェントのアップグレード中に使用されます)

Windows

  • サービスとしてログオン (Windowsサービスとして実行する)

  • サービス開始/停止 (エージェントのアップグレードが機能するために必要なWindowsサービスとして実行するには、マイクロソフトサポート技術情報の記事(英語)も参照してください。)

  • デバッグプログラム (テイクプロセスダンプ機能に必要)

  • マシンを再起動する (エージェントの再起動機能に必要)

  • Windows サービスとして実行されているビルドエージェントのパフォーマンスを監視できるようにするには、エージェントを起動するユーザーがPerformance Monitor Usersグループのメンバーである必要があります。

Linux

  • ユーザーは shutdown コマンドを実行できなければなりません (クラウド環境で運用している場合のエージェントマシン再起動機能およびマシンシャットダウン機能について)

  • systemdを使用する場合、メインプロセス出口でプロセスを強制終了してはいけません (RemainAfterExit = yes(英語)を使用 )

ビルド関連の権限

ビルドプロセスはTeamCityエージェントによって起動され、環境を共有し、TeamCityエージェントによって使用されるOSユーザーで実行されます。TeamCityエージェントがそれに応じて構成されていることを確認してください。関連するWindowsサービスの制限については、既知の問題を参照してください。

エージェント - サーバー間データ転送

TeamCityエージェントは、serverUrl エージェントプロパティーとして設定されたURLを介してTeamCityサーバーに接続します。これは、単方向のエージェントからサーバーへの接続と呼ばれます。特別に設定されている場合、TeamCityエージェントは、サーバーからエージェントへの接続を確立することも必要とする従来の双方向通信を使用できます。エージェントとサーバー間の通信が特定のエージェントに対して単方向か双方向かを表示するには、エージェント | <エージェント名> | エージェント概要タブの詳細セクション、通信プロトコルにナビゲートします。

単方向のエージェント間通信

エージェントは、ポーリングプロトコルを介した単方向のエージェント対サーバー接続を使用します。エージェントはTeamCityサーバーへのHTTP(S)接続を確立し、サーバーコマンドについてサーバーを定期的にポーリングします。

エージェントからサーバーへの通信にはHTTPSを使用することをお勧めします(関連するサーバー構成の注意を確認してください)。エージェントとサーバーが安全な環境にデプロイされている場合、転送オーバーヘッドが減少するため、サーバーへの接続にプレーンHTTP URLを使用するようにエージェントを構成できます。エージェントからサーバーへ確立された接続を介して移動するデータには、ビルド設定、リポジトリー・アクセス資格情報とキー、リポジトリー・ソース、ビルド成果物、ビルド進行状況メッセージ、およびビルド・ログが含まれます。HTTPプロトコルを使用する場合、そのデータは「man in the middle」攻撃を介して危険にさらされる可能性があります。

双方向通信

双方向通信は、エージェントとサーバー間の従来の接続であり、特に有効にする必要があります。(以下の例を参照)。有効にすると、エージェントはHTTP(またはHTTPS)経由でサーバーに接続し、サーバーはHTTP経由でエージェントに接続する必要があります。

サーバーによって確立された接続を介してエージェントに転送されるデータは、保護されていないHTTPチャネルを介して渡されるため、サーバーとエージェント間のトラフィックを監視する可能性のあるサードパーティーに公開される可能性があります。さらに、エージェントとサーバーは互いに「コマンド」を送信できるため、HTTP要求を送信して応答を取得できる攻撃者は、理論上、エージェントに任意のコマンドを実行させ、セキュリティに影響を及ぼす他のアクションを実行させる可能性があります。

TeamCityエージェントが使用する通信プロトコルは、teamcity.agent.communicationProtocols サーバーの内部プロパティーの値によって決まります。このプロパティーは、コンマで区切られたプロトコルの順序付きリスト(polling および xml-rpc はサポートされているプロトコル名です)を受け入れ、デフォルトで teamcity.agent.communicationProtocols=polling に設定されています。複数のプロトコルが指定されている場合、エージェントはこのリストの最初のプロトコルを使用して接続を試み、失敗した場合はリストの2番目のプロトコルを介して接続を試みます。 polling は単方向プロトコル、xml-rpc - より古い双方向通信を意味します。

通信プロトコルの変更

  • すべてのエージェントの通信プロトコルを変更するには、TeamCityサーバーの teamcity.agent.communicationProtocols サーバーの内部プロパティーを設定します。新しい設定は、変更後にサーバーに接続するすべてのエージェントによって使用されます。既存の接続のプロトコルを変更するには、TeamCityサーバーを再起動してください。

  • デフォルトでは、エージェントのプロパティーは設定されていません。エージェントが最初にサーバーに接続すると、TeamCityサーバーからそれを受け取ります。初期エージェント構成後に個々のエージェントのプロトコルを変更するには、エージェントの特性teamcity.agent.communicationProtocols プロパティーの値を変更します。エージェントのプロパティーはサーバープロパティーをオーバーライドします。変更後は、実行中のビルドが終了したときにエージェントが自動的に再起動します。

  • バージョン2018.1+のTeamCityエージェントをバージョン9.1より前のTeamCityサーバーに接続する場合(アップグレード後のロールバック後など)、古いバージョンに接続できるようにするには、エージェントを更新して xml-rpc プロトコルを使用する必要があります。自己更新手順を実行するサーバー。

追加のビルドエージェントのインストール

1.以下のいずれかのオプションを使用してビルドエージェントをインストールします。

2.インストール後、 conf/buildAgent.properties ファイルにエージェントの名前とTeamCityサーバーのアドレスを指定してエージェントを設定します。

3.エージェントを開始します。エージェントが正しく実行されていないようである場合は、エージェントログを確認してください。

新しくインストールされたエージェントが初めてサーバーに接続すると、Agents ページに表示されます。Unauthorized agents タブは、それを承認する権限を持つ管理者/ユーザーに表示されます。エージェントはTeamCity Web UIで承認されるまでビルドを実行しません。サーバーと同じコンピューター上で実行されているエージェントは、デフォルトで許可されています。

許可されたエージェントの数は、サーバー上のエージェントライセンスの数によって制限されます。詳細はライセンスポリシーを参照してください。

Windowsインストーラーによるインストール

  1. TeamCity Web UIで、エージェントタブに移動します。

  2. ビルドエージェントをインストールするリンクをクリックし、MS Windowsインストーラを選択してインストーラをダウンロードしてください。

  3. エージェントで、agentInstaller.exe Windowsインストーラーを実行して、インストール手順に従います。

Dockerエージェントイメージを介したインストール

  1. TeamCity Web UIで、エージェントタブに移動します。

  2. ビルドエージェントをインストールするリンクをクリックし、Dockerエージェントイメージを選択します。

  3. 開いたページ(英語)の指示に従ってください。

ZIPファイルによるインストール

  1. JDK(JRE)1.8.0_161以降(Java 6-10はサポートされていますが、1.8.0_161 +を推奨)がエージェントコンピューターに正しくインストールされていることを確認してください。

  2. エージェントコンピューターで、JRE_HOME または JAVA_HOME 環境変数が設定されていることを確認します(それぞれ、インストール済みのJREまたはJDKディレクトリーを指している)。

  3. TeamCity Web UIで、エージェントタブに移動します。

  4. ビルドエージェントをインストールするリンクをクリックし、Zipファイルのディストリビューションを選択してアーカイブをダウンロードしてください。

  5. ダウンロードしたファイルを目的のディレクトリーに解凍します。

  6. <installation path>\conf ディレクトリーに移動し、buildAgent.dist.properties というファイルを見つけて、buildAgent.propertiesに名前を変更します。

  7. buildAgent.properties ファイルを編集して、TeamCityサーバーのURL(HTTPSをお勧めします。を参照)とエージェントの名前を指定します。エージェント構成の詳細については、エージェント構成の構築のセクションを参照してください。

  8. Linuxでは、bin/agent.sh シェルスクリプトに実行権限を与える必要があるかもしれません。

エージェントプッシュによるインストール

TeamCityは、リモートホストにビルドエージェントをインストールするための機能を提供します。現在サポートされているサーバーホストプラットフォームとビルドエージェントのターゲットの組み合わせは次のとおりです。

  • UnixベースのTeamCityサーバーからは、ビルドエージェントをUnixホストにのみインストールできます。(SSH経由)

  • WindowsベースのTeamCityサーバーから、ビルドエージェントをUnix(SSH経由)またはWindows(psexec経由)ホストにインストールできます。

リモートホスト要件

リモートホストにはいくつかの要件があります。

プラットフォーム

前提条件

Linux

1. JDK(JRE)6-10(1.8.0_161以降をお勧めする)をインストールしました。JVMは、JAVA_HOMEJRE_HOME)グローバル環境変数で到達可能であるか、またはグローバルパス内にある必要があります。(つまり、ユーザーの.bashrcファイルにはありません。)

2. unzip ユーティリティ。

3. wget または curlのどちらか。

Windows

1. JDK / JRE 6-10をインストールしました(1.8.0_161以降推奨 )。

2. TeamCityサーバー上の Sysinternals psexec.exe。パスでアクセス可能でなければなりません。管理 | ツールページを使ってインストールできます。PsExecはリモート Windowsホストに追加の要件を適用します(たとえば、リモートホスト上の管理共有(英語)にアクセスできる必要があります)。PsExec(英語)についてさらに読む

インストール

  1. TeamCityサーバーWeb UIで、エージェント | エージェントプッシュタブにナビゲートし、エージェントをインストールしています...をクリックします。
    複数のターゲットホストに同じ設定を使用する場合は、これらの設定でプリセット作成し、エージェントを別のリモートホストにインストールするときに毎回使用することができます。

  2. エージェントをインストールするダイアログで、保存したプリセットを選択するか、「カスタム設定を使用する」を選択し、ターゲットホストプラットフォームを指定して対応する設定を行います。SSHを介したLinuxシステムへのエージェントプッシュは、SSHポートパラメーターとして指定されたカスタムポート(デフォルトは22)をサポートします。プリセットで指定されたポートはホスト名で上書きすることができます。実際のエージェントのインストール中に hostname.domain:2222

  3. Sysinternals psexec.exeをダウンロードする必要があるかもしれません。その場合は、対応する警告と、それをダウンロードできる管理 | ツールページへのリンクが表示されます。

エージェントクラウドプロファイル設定でエージェントプッシュプリセットを使用して、起動したクラウドインスタンスにビルドエージェントを自動的にインストールできます。

ビルド・エージェントを起動する

TeamCityビルドエージェントは手動で起動することも、自動的に起動するように設定することもできます。

手動スタート

エージェントを手動で起動する、次のスクリプトを実行します。

  • Windows用: <installation path>\bin\agent.bat start

  • LinuxおよびmacOS用: <installation path>\bin\agent.sh start

自動スタート

エージェントを自動的起動するように設定するには、対応するセクションを参照してください。

  • Windows
  • Linux : 起動するには agent.sh start コマンドで、停止するには agent.sh stop コマンドでデーモンプロセスを設定します。

  • macOS

Windowsでの自動エージェント起動

Windowsのマシン起動時にエージェントを自動的に実行するには、エージェントをWindowsサービスとして実行するように設定するか、または別の方法で自動プロセスを開始します。
Windowsサービスアプローチを使用するのが最も簡単な方法ですが、Windowsはこの方法で実行されるプロセスにいくつかの制約を適用します。
TeamCityエージェントは、すべての要件が満たされていればWindowsサービスで確実に機能しますが、エージェント上で実行されるように構成されたビルド・プロセスには当てはまりません。

すべてのビルドスクリプトがこれをサポートしている場合にのみ、TeamCityエージェントをWindowsサービスとして実行することをお勧めします。それ以外の場合は、TeamCityエージェントを自動的に起動するための代替OS固有の方法を使用することをお勧めします。
方法の1つは、Windowsの起動時(英語)自動ユーザーログオン(英語)を設定し、次にユーザーのログオン時に( agent.bat startを介して)TeamCityエージェントの起動を設定することです(たとえば、Windows タスクスケジューラ(英語)を介して)。

Windowsサービスとしてのエージェントの構築

Windowsでは、ユーザーがログオンしていなくてもTeamCityエージェントを実行できるように、Windowsサービスとして実行することをお勧めします。Windowsエージェントインストーラーを使用する場合は、インストールウィザードでサービスをインストールするオプションがあります。

以下の手順を使用して、Windowsサービスを手動でインストールすることができます(たとえば、.zip エージェントのインストール後)。この手順は、同じマシン上で2番目以降のエージェント用のWindowsサービスを作成するためにも実行する必要があります。

サービスをインストールするには:

  1. 必要な名前とIDを持つサービス(下記の#4を参照、サービス名はデフォルトで TeamCity Build Agent です)が存在しないか確認してください。インストールされている場合は取り外します。

  2. <agent home>\launcher\conf\wrapper.conf ファイルの wrapper.java.command プロパティーに、JDKインストールディレクトリーのJava実行可能ファイルへの有効なパスが含まれていることを確認してください。Windowsディストリビューションとともにインストールされたエージェントには wrapper.java.command=../jre/bin/java を使用できます。引用符なしでjava.exeファイルのパスを指定してください。

  3. "System" ではなく、ユーザーアカウント(推奨)でエージェントを実行する場合は、適切な資格情報を使用して wrapper.ntservice.account プロパティーと wrapper.ntservice.password プロパティーを <agent home>\launcher\conf\wrapper.conf ファイルに追加します。

  4. (2回目以降のインストールの場合) wrapper.console.titlewrapper.ntservice.namewrapper.ntservice.displaynamewrapper.ntservice.description の各プロパティーがコンピューター内で一意の値を持つように <agent>\launcher\conf\wrapper.conf ファイルを変更します。

  5. 新しいエージェントサービスを登録するのに十分な特権を持つユーザーで <agent home>\bin\service.install.bat スクリプトを実行します。説明されているように構成された後にのみ、初めてエージェントを開始するようにしてください。

サービスを開始するには

  • <agent home>/bin/service.start.bat を実行 (または標準のWindowsサービスアプレットを使用する)

サービスを停止するには

  • <agent home>/bin/service.stop.bat を実行 (または標準のWindowsサービスアプレットを使用する)

標準のWindows net.exe ユーティリティを使用して、インストール後にサービスを管理することもできます:
たとえば(デフォルトのサービス名を仮定):

net start TCBuildAgent

<agent home>\launcher\conf\wrapper.conf ファイルを使用して、エージェントのJVMパラメータを変更することもできます。

ビルドエージェントサービスを実行するために使用されるユーザーアカウントには、前述のように、エージェントサービスを開始または停止するのに十分な権限が必要です。

Linuxでの自動エージェント起動

Linuxでマシンのブート時にエージェントを自動的に実行するには、agent.sh start コマンドでデーモンプロセスを設定し、agent.sh stop コマンドでエージェントプロセスを停止します。

systemdについては、teamcityagent.service 設定ファイルの例を参照してください。

[Unit] Description=TeamCity Build Agent After=network.target [Service] Type=oneshot User=teamcityagent Group=teamcityagent ExecStart=/home/teamcityagent/agent/bin/agent.sh start ExecStop=-/home/teamcityagent/agent/bin/agent.sh stop # Support agent upgrade as the main process starts a child and exits then RemainAfterExit=yes # Support agent upgrade as the main process gets SIGTERM during upgrade and that maps to exit code 143 SuccessExitStatus=0 143 [Install] WantedBy=default.target

init.dの場合は、手順例を参照してください。

1. services start / stop servicesスクリプトディレクトリーに移動します。

cd /etc/init.d/

2.ビルドエージェントサービススクリプトを開きます。

sudo vim buildAgent

3.ファイルに以下を貼り付けます。

#!/bin/sh ### BEGIN INIT INFO # Provides: TeamCity Build Agent # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start build agent daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO #Provide the correct user name: USER="agentuser" case "$1" in start) su - $USER -c "cd BuildAgent/bin ; ./agent.sh start" ;; stop) su - $USER -c "cd BuildAgent/bin ; ./agent.sh stop" ;; *) echo "usage start/stop" exit 1 ;; esac exit 0

4.ファイルを実行するための権限を設定します。

sudo chmod 755 buildAgent

5.適切なツールを使用して、マシンの起動時および再起動時にエージェントサービスを開始するためのリンクを作成します。

  • Debian / Ubuntuの場合:

sudo update-rc.d buildAgent defaults
  • Red Hat / CentOSの場合:

sudo chkconfig buildAgent on

macOSでの自動エージェント開始

macOS/Mac OS Xの場合、TeamCityはビルドユーザーがログインしたときに自動的にビルドエージェントをロードする機能を提供します。

LaunchAgentアプローチ

LaunchAgentを介して自動ビルドエージェント起動を設定するには、次の手順に従います。

1. buildAgent.zipを介してMacにビルドエージェントをインストールします。

2. conf/buildAgent.properties ファイルを準備します(少なくともそこにエージェント名を設定してください)。

3.適切なエージェントアップグレードプロセスを保証するために、buildAgent ディレクトリー以下のすべてのファイルが your_build_user によって所有されていることを確認してください。

4.以下のコマンドでビルドエージェントをロードします。

mkdir buildAgent/logs  # Directory should be created under your_build_user user sh buildAgent/bin/mac.launchd.sh load

your_build_user アカウントでこれらのコマンドを実行してください。

ビルドエージェントがTeamCityサーバーから自動アップグレードするのを数分待つ必要があります。ログでプロセスを監視できます。

tail -f buildAgent/logs/teamcity-agent.log

5. build agenがアップグレードされ、TeamCityサーバーに正常に接続されたら、エージェントを停止します。

sh buildAgent/bin/mac.launchd.sh unload

6.ビルドエージェントがTeamCityサーバーからアップグレードした後、buildAgent/bin/jetbrains.teamcity.BuildAgent.plist ファイルを $HOME/Library/LaunchAgents/ ディレクトリーにコピーします。

7. ここで説明されているように、ビルドユーザーとして自動的にログインするようにMacシステムを設定します。

再起動します。

システムの起動時に、ビルドユーザーは自動的にログインし、ビルドエージェントが起動します。

ビルドエージェントが実行されていることをすばやく確認するには、次のコマンドを使用します。

launchctl list | grep BuildAgent 69722 0 jetbrains.teamcity.BuildAgent

Mac OSでセカンドビルドエージェントを設定する

複数のビルドエージェントを起動する場合は、次の変更を加えてビルドエージェントのインストールと起動の手順を繰り返します。

  • 2番目のビルドエージェントを別のディレクトリーにインストールします。

  • conf/buildAgent.properties で別のエージェント名を指定してください。

  • buildAgent/bin/mac.launchd.shを実行しないでください: 代わりに
    • $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent.plist ファイルのコピーを $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent2.plistとして作成します。

    • $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent2.plist ファイルを編集して、以下のパラメータを設定します。
      • Label パラメーターを jetbrains.teamcity.BuildAgent2に設定

      • 2番目のビルド・エージェント・ホームへの正しいパスへの WorkingDirectory パラメーター

    • $HOME/start_build_agent.command上記の詳細を参照)に、2番目のビルドエージェントを起動する行を追加します。

両方のビルドエージェントが実行されていることを確認するには、次のコマンドを使用します。

launchctl list | grep BuildAgent 70599 0 jetbrains.teamcity.BuildAgent2 69722 0 jetbrains.teamcity.BuildAgent

ビルドエージェントの停止

エージェントを手動で停止するstop パラメータを指定して <Agent home>\agent スクリプトを実行します。

現在のビルドが終了した後に停止を要求するには、stop を使用してください。
stop force を使用して即時停止を要求します(エージェントでビルドが実行されている場合は、突然停止します(取り消されます))。
Linuxでは、stop kill を使ってエージェントプロセスを強制終了することができます。

コンソールを接続した状態でエージェントを実行している場合は、コンソールでCtrl+Cを押してエージェントを停止することもできます(ビルドが実行中の場合はキャンセルされます)。

Mac OSでのエージェントサービスの停止

ビルドエージェントが LaunchAgent サービスとして起動されている場合は、launchctl ユーティリティを使用して停止できます。

launchctl unload $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent.plist # or launchctl remove jetbrains.teamcity.BuildAgent

Javaの設定

TeamCityビルドエージェントはJavaアプリケーションであり、動作するにはJDKバージョン6-10が必要です。OpenJDK 8(たとえばAdoptOpenJDK(英語)による)1.8.0_161以降、32ビットが推奨されます。Oracle Java 8(英語)もサポートされています。

ビルドエージェントには2つのプロセスがあります。

  • Agent Launcher - エージェントプロセスを起動するJavaプロセス

  • エージェント - ビルドエージェントのメインプロセス: エージェントランチャーの子プロセスとして実行されます

(Windows) .exe TeamCityディストリビューションはJava 1.8.0_161にバンドルされています。
以前のバージョンのTeamCityエージェントを実行している場合は、JVMを更新するためにエージェントのインストールを繰り返す必要があります。

x32ビットJDK(JRE以外)の使用をお勧めします。JDKは、IntelliJ IDEAプロジェクト、Java インスペクション重複などの一部のビルドランナーに必要です。Javaビルドがない場合は、JDKの代わりにJREをインストールできます。
x64ビットのJavaを使用することは可能ですが、メインのエージェントプロセス用に -Xmx メモリ値を2倍にする必要があるかもしれません(サーバーについてはビルドエージェント起動プロパティーの設定と同様のセクションを参照してください)。

.zip エージェントをインストールするには、適切なJavaバージョンをインストールする必要があります。 PATH で利用できるようにするか、次のいずれかの場所で利用できるようにします。

  • <Agent home>/jre ディレクトリー

  • TEAMCITY_JREJAVA_HOME、または JRE_HOME 環境変数によって指定されているディレクトリー内(いずれかの変数が定義されていることを確認してください)。

  • Windowsサービスを介してエージェントを実行する予定の場合は、<agent home>\launcher\conf\wrapper.conf ファイルの wrapper.java.command プロパティーを必ずJava実行可能ファイルへの有効なパスに設定してください。

エージェントでのJavaのアップグレード

エージェントを起動しようとしていて、デフォルトの場所のいずれにも必要なJavaバージョン(現在はJava 6)が見つからない場合、エージェントは起動できず、切断と表示されます。

ビルドエージェントがJava 8より古いJavaバージョン(たとえば、Java 6または7)を使用している場合は、対応する警告がエージェントのページに表示され、Web UIにヘルス項目が表示されます。

最新のJava 8, 32ビットバージョンを使用することをお勧めします。OpenJDK 8(たとえばAdoptOpenJDK(英語)による)1.8.0_161以降、32ビットが推奨されます。Oracle Java 8(英語)もサポートされています。

エージェント上のJavaを更新するには、以下のいずれかを実行します。

  • より新しいJavaの使用に切り替える:現在のバージョンと同じビット数の適切なJavaバージョンがエージェントで検出された場合、エージェントページにはそのJavaの使用に自動的に切り替えるアクションが表示されます。アクションの呼び出し時に、エージェントプロセスは新しいJavaを使用して(エージェントがアイドル状態になると、つまり現在のビルドがある場合は終了して)再起動されます。

  • (Windows)ビルド・エージェントの .exe インストールには必要なJavaがバンドルされているため、TeamCityサーバーのエージェントページから入手した .exe インストーラーを使用して手動でエージェントを再インストールすることができます。

  • 必要なJavaをエージェントのいずれかの標準の場所にインストールし、エージェントを再起動します。エージェントはそれを検出し、Web UIで新しいJavaを使用するためのアクションを提供します(上記を参照)。

  • 必要なJavaをエージェントにインストールし、それを使用するようにエージェントを構成します

同じマシンに複数のビルド・エージェントをインストールする

マシンが複数のビルドを同時に実行できる場合は、同じマシンに複数のTeamCityエージェントをインストールできます。ただし、ビルドの相互影響を最小限に抑え、ビルドをより予測可能なものにするために、(仮想)マシンごとに単一のエージェントを実行することをお勧めします。複数のエージェントをインストールするときは、ユーザーレベルのリソース(Maven / Gradle / NuGetローカルアーティファクトキャッシュなど)が競合しないように、異なるOSユーザーにインストールすることをお勧めします。

TeamCityは、同じマシンにインストールされているか異なるマシンにインストールされているかにかかわらず、すべてのエージェントを同等に扱います。
同じマシンに複数のTeamCityビルドエージェントをインストールするときは、次の点を考慮してください。

  • そのようなエージェント上で実行されているビルドは、どのリソース(共通のディスクディレクトリー、OSプロセス、OS一時ディレクトリー)によっても競合してはいけません。

  • ハードウェアとビルドによっては、ビルドのパフォーマンスが低下することがあります。複数のビルドを同時に実行したときに、ディスク、メモリ、またはCPUのボトルネックがないことを確認してください。

  • 異なるOSユーザーで実行するようにエージェントを設定することをお勧めする

1つのエージェントをインストールした後は、通常のインストール手順に従って追加のエージェントをインストールできます(下記のWindowsサービスの例外を参照)。ただし、以下のことを確認してください。

  • エージェントは別々のディレクトリーにインストールされます。

  • エージェントは、 buildAgent.properties ファイル内に独自の workDir および tempDir ディレクトリーを持っています。

  • buildAgent.properties name および ownPort プロパティーの値は一意です。

  • エージェント上で実行されているビルドには絶対チェックアウトディレクトリーが指定されていません。

絶対チェックアウトディレクトリーを指定したビルド構成がないことを確認します(または、このようなビルド構成で " clean checkout "オプションが有効になっていることと、同時に実行できないことを確認します)。

通常、新しいエージェントをインストールする場合は、tempworklogs、および system ディレクトリーを除いて、既存のエージェントのディレクトリーを新しい場所にコピーするだけです。次に、conf/buildAgent.properties を新しい nameownPort 値で変更します。 authorizationToken プロパティーを消去(値を削除または削除)し、workDirtempDir が相対的であること、または他のエージェントと衝突しないことを確認してください。

Mac OSに2番目のビルドエージェントをインストールする場合は、ここで追加の詳細を参照してください。

Windowsインストーラーを使用して追加のエージェントをインストールし、そのエージェントをサービスとして実行したい場合は、2番目のエージェントをサービスとして同じマシンにインストールすることはインストーラーによってサポートされていないため、手動のステップを実行する必要があります。機能の要求(英語)も参照してください。
2番目のエージェントをインストールするには、2番目のエージェントを手動で (.zipエージェントディストリビューションを使用して)インストールすることをお勧めします。Windowsエージェントインストーラーを使用してサービスのインストールを選択しないことができますが、この方法で最初にインストールされたエージェントのアンインストールオプションを失うことになります。
2番目のエージェントがインストールされた後、上のセクションで説明されているようにそれのための新しいサービスを登録してください。


関連事項:

概念 : ビルド・エージェント