TeamCity 2020.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. ビルドエージェントをインストールするリンクをクリックし、2つのオプションのいずれかを選択してアーカイブをダウンロードします。
    • 最小限のZIPファイルディストリビューション : プラグインのない通常のビルドエージェント

    • (TeamCity 2020.1以降)完全なZIPファイルのディストリビューション*:サーバーで現在有効になっているすべてのプラグインがプリパックされたフルビルドエージェント

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

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

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

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

Windowsでは、エージェントの手動起動を使用する代わりに、ビルドエージェントWindowsサービスをインストールすることもできます。

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

TeamCity provides the Agent Push functionality that allows installing a build agent to a remote host. Currently, supported combinations of the server host platform and targets for build agents are:

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

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

リモートホスト要件

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

プラットフォーム

前提条件

Linux

  • Installed JDK (JRE) 6-10 ( 1.8.0_161以降を推奨 ). The JVM should be reachable via the JAVA_HOME ( JRE_HOME ) global environment variable or be in the global path (instead of being specified in, for example, user's .bashrc file)

  • unzip ユーティリティ。

  • wget または curlのいずれか。

Windows

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

  • Sysinternals psexec.exe has to be installed on the TeamCity server and accessible in paths. You can install it on the 管理 | ツール page.
    Note that PsExec(英語) applies additional requirements to a remote Windows host. Make sure the following preconditions are satisfied:
    • Administrative share(英語) on a remote host is enabled and accessible.

    • Remote services work (MMC snap-in can connect to the machine).

    • Remote registry works ( regedit can connect to the machine via services.msc ).

    • Server and workstation services are running (check via services.msc ).

    • Classic network authentication(英語)が有効になります。

You can test the connection with the following commands:

net use \\target\Admin$ /user:Administrator dir \\target\Admin$

インストール

  1. In the TeamCity Server web UI navigate to the エージェント | エージェントプッシュ tab, and click エージェントをインストール .
    If you are going to use same settings for several target hosts, you can create a preset with these settings and use it each time when installing an agent to another remote host.

  2. In the エージェントをインストールする dialog, either select a saved preset or choose " Use custom settings ", specify the target host platform, and configure corresponding settings. Agent Push to a Linux system via SSH supports custom ports (the default is 22) specified as the SSHポート parameter. The port specified in a preset can be overridden in the host name (for example, hostname.domain:2222 ), during the actual agent installation.

  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起動時(英語)自動ユーザーログオン(英語)を構成してから、ユーザーログオン(Windows タスクスケジューラ(英語)など)で( agent.bat startを介して)TeamCityエージェントの起動を構成することです。

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の場合、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/ ディレクトリにコピーします。ルート権限でTeamCityを起動したくない場合は、.plist ファイルでUserNameキーを指定します。例:

<key>UserName</key> <string>teamcity_user</string>

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 を使用してエージェントプロセスを強制終了するオプションがもう1つあります。

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

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

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

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

Javaの設定

TeamCityビルドエージェントはJavaアプリケーションです( サポートされているJavaバージョン)。

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

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

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

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

64ビットJDK(JREではない)の使用をお勧めします。IntelliJ IDEAプロジェクト、Java インスペクション重複などの一部のビルドランナーにはJDKが必要です。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、64ビットバージョンを使用することをお勧めします。OpenJDK 8(たとえば、バンドルされたAmazon Corretto(英語))1.8.0_161以降。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エージェントをインストールできます。ただし、ビルドの相互影響を最小限に抑え、ビルドをより予測可能にするために、(仮想)マシンごとに1つのエージェントを実行することをお勧めします。複数のエージェントをインストールする場合、ユーザーレベルのリソース(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番目のエージェントをインストールしたら、上記のセクションで説明したように、2番目のエージェントの新しいサービスを登録します。