TeamCity 2019.1ヘルプ

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

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

このページで:

前提条件

必要なOSと環境の権限

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

TeamCityビルドエージェントを実行するには、エージェントの実行に使用される環境とユーザーアカウントが以下の要件を満たす必要があります。

共通

エージェントプロセス(java)は

  • buildAgent.properties ファイルの serverUrl プロパティーで設定されたサーバーURLへのアウトバウンドHTTP接続を開くことができる(通常はTeamCity UIを表示するためにブラウザで使用するのと同じアドレス)。設定されたURLのパスへのリクエスト送信は制限されるべきではありません。推奨リバースプロキシ設定も参照してください。エージェントマシンまたはサーバーマシンにインストールされているファイアウォール、ネットワーク構成、およびプロキシ(存在する場合)が、これらの要件に準拠していることを確認してください。

  • 再帰的に以下のディレクトリーへのフルパーミッション(read / write / delete)を持つ: <agent home> (自動エージェントアップグレードおよびエージェントツールサポートに必要)、 <agent work> <agent temp> 、およびエージェントシステムディレクトリー ( workDir , tempDirおよび buildAgent.properties ファイルの 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. ビルドエージェントをインストールするリンクをクリックし、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サービスとして実行することをお勧めします。それ以外の場合は、代替のOS固有の方法を使用してTeamCityエージェントを自動的に開始することをお勧めします。
方法の1つは、Windows起動時(英語)自動ユーザーログオン(英語)を構成し、ユーザーログオン(たとえば、タスクスケジューラ(英語)経由)でTeamCityエージェント起動( agent.bat start経由)を構成することです。

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番目以降のインストールの場合) <agent>\launcher\conf\wrapper.conf ファイルを変更して、wrapper.console.title , wrapper.ntservice.name , wrapper.ntservice.displaynameおよび wrapper.ntservice.description プロパティーがコンピューター内で固有の値を持つようにします。

  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. サービスの開始/停止サービススクリプトディレクトリーに移動します。

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. ビルドエージェントがアップグレードされ、TeamCityサーバーに正常に接続したら、エージェントを停止します。

sh buildAgent/bin/mac.launchd.sh unload

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

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

8. リブート。

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

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

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 パラメーター

    • コマンド launchctl load $HOME/Library/LaunchAgents/jetbrains.teamcity.BuildAgent2.plistで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ビルドエージェントは、動作するJDKバージョン8-10を必要とするJavaアプリケーションです。OpenJDK 8(たとえばAdoptOpenJDK(英語)による)1.8.0_161以降、32ビットが推奨されます。Oracle Java 8(英語)もサポートされています。

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

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

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

(Windows) .exe TeamCityディストリビューションは、OpenJDK 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_JRE , JAVA_HOME または JRE_HOME 環境変数が指すディレクトリー内(定義されている変数が1つだけであることを確認してください)。

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

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

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

ビルドエージェントがJava 8よりも古いバージョンのJavaを使用している場合、対応する警告がエージェントのページとWeb UIのヘルスアイテムに表示されます。

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

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

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

  • (Windows)ビルドエージェントWindowsインストーラーには必要なJavaがバンドルされているため、TeamCityサーバーエージェントページから取得したWindowsインストーラー(.exe)を使用して、エージェントを手動で再インストールできます。インストール手順を参照してください。更新されたエージェントをインストールする前に、以前のバージョンのエージェントをアンインストールすることが重要です。エージェントのホームディレクトリーで Uninstall.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 "オプションが有効になっていることと、同時に実行できないことを確認します)。

通常、新しいエージェントのインストールでは、temp , work , logsおよび system ディレクトリーを除き、既存のエージェントのディレクトリーを新しい場所にコピーするだけで済みます。次に、新しい name , ownPort 値で conf/buildAgent.properties を修正します。authorizationToken プロパティーをクリア (値を削除または除去) し、workDir および tempDir が相対的であるか、または別のエージェントとクラッシュしていないことを確認します。

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

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


関連事項:

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