TeamCity エージェントの起動
新しくインストールされたエージェントが初めてサーバーに接続すると、サーバーを承認する権限を持つ管理者 / ユーザーに表示される エージェント | 未承認のエージェント ページに表示されます。 エージェントは TeamCity UI で承認されるまでビルドを実行しません。 サーバーと同じコンピューターで実行されているエージェントは、デフォルトで許可されています。
許可されるエージェントの数は、サーバー上のエージェントライセンスの数によって制限されます。 詳細については、 ライセンスポリシーを参照してください。
TeamCity ビルドエージェントは手動で起動することも、自動的に起動するように設定することもできます。
手動起動
次のスクリプトを実行します。
Windows 上:
<インストールパス>\bin\agent.bat startLinux と macOS:
<インストールパス>/bin/agent.sh start
自動起動
以下のセクションでは、さまざまな OS タイプで TeamCity ビルドエージェントを自動起動する方法を説明します。
Windows でのエージェントの自動起動
Windows マシンの起動時にエージェントを自動的に実行するには、Windows サービスとして実行するようにエージェントを設定するか、別の方法を使用します。 Windows サービスアプローチを使用するのが最も簡単な方法ですが、Windows はこの方法で実行されるプロセスに いくつかの制約を適用します。
すべての 要件が満たされていれば、TeamCity エージェントは Windows サービスとして安定して動作しますが、エージェント上で実行するように設定されたビルドプロセスでは、そうでないことがよくあります。 そのため、すべてのビルドスクリプトがこれに対応している場合にのみ、TeamCity エージェントを Windows サービスとして実行することをお勧めします。 それ以外の場合は、TeamCity エージェントを自動で起動するために、代替の OS 固有メソッドを使用することをお勧めします。
その一例は、Windows 起動時に 自動ユーザーログオン を設定し、ユーザーログオン時に (agent.bat start 経由で) TeamCity エージェントの起動を設定する方法です (たとえば、Windows タスクスケジューラ 経由)。
Windows サービスとしてのビルドエージェント
Windows では、ユーザーがログインしていなくても実行できるように、TeamCity エージェントをサービスとして起動できます。 Windows エージェントインストーラーを使用する場合は、インストールウィザードでサービスをインストールするオプションがあります。
次の手順を使用して、Windows サービスを手動でインストールできます(たとえば、 .zip エージェントのインストール後)。 この手順は、同じマシン上に 2 番目以降のエージェント用の Windows サービスを作成するためにも実行する必要があります。
サービスをインストールします。
必要なお名前と ID を持つサービスが存在しないことを確認します (ステップ 4 を参照。サービスのお名前はデフォルトで TeamCity ビルドエージェント です)。 インストールされている場合は、除去します。
<エージェントホーム>\launcher\conf\ラッパー.confファイルのラッパー.java.コマンドプロパティに、JDK インストールディレクトリの Java 実行可能ファイルへの有効なパスが含まれていることを確認してください。 Windows ディストリビューションファイルからインストールされたエージェントにはラッパー.java.コマンド=../jre/bin/javaを使用できます。java.exeファイルのパスは引用符なしで指定してください。エージェントを「システム」ではなくユーザーアカウント (推奨) で実行する場合は、適切な資格情報を使用して
ラッパー.ntservice.アカウントおよびラッパー.ntservice.パスワードプロパティを<エージェントホーム>\launcher\conf\ラッパー.confファイルに追加します。(同じマシン上の 2 番目以降のエージェントの場合)
ラッパー.コンソール.タイトル、ラッパー.ntservice.名前、ラッパー.ntservice.表示名、ラッパー.ntservice.説明プロパティが OS 内で一意の値を持つように、<エージェント>\launcher\conf\wrapper.confファイルを変更します。新しいエージェントサービスを登録するのに十分な権限を持つユーザーで
<エージェントホーム>\bin\service.install.batスクリプトを実行します。 説明されているように構成された後でのみ、エージェントを初めて起動するようにしてください。
サービスを開始します。
<エージェントホーム>/bin/service.start.batを実行します(または標準の Windows サービスアプレットを使用します)。
サービスを停止します。
<エージェントホーム>/bin/service.stop.batを実行します(または標準の Windows サービスアプレットを使用します)。
インストール後、標準の Windows net.exe コマンド ユーティリティを使用してサービスを管理することもできます。 例(デフォルトのサービス名を想定):
<エージェントホーム>\launcher\conf\ラッパー.conf ファイルを使用して、エージェントの JVM パラメーターを変更することもできます。
ビルドエージェントサービスの実行に使用されるユーザーアカウントには、エージェントサービスを開始 / 停止するための十分な権限が必要であることに注意してください。
Linux でのエージェントの自動起動
Linux マシンの起動時にエージェントを自動的に実行するには、デーモンプロセスを構成して agent.sh 開始 コマンドで開始し、 agent.sh 停止 コマンドで停止します。
systemd については、 TeamCity エージェントサービス 構成ファイルの例を参照してください。
init.d については、次の手順例を参照してください。
サービススクリプトのディレクトリに移動します:
cd /etc/init.d/ビルドエージェントサービススクリプトを開きます。
sudo vim buildAgent次のコンテンツをファイルに貼り付けます。
#!/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ファイルを実行する権限を設定します。
sudo chmod 755 buildAgent適切なツールを使用して、マシンの起動時および再起動時にエージェントサービスを開始するリンクを作成します。
Debian/Ubuntu の場合:
sudo update-rc.d buildAgent defaultsRed Hat/CentOS の場合:
sudo chkconfig buildAgent on
macOS でのエージェントの自動起動。
macOS では、TeamCity は、ビルドユーザーがログインしたときにビルドエージェントを自動でロードする機能を提供します。
推奨されるアプローチは、 launchd (英語) (LaunchAgent) を使用することです。
launchd を介して自動ビルドエージェント起動を設定するには、次の手順に従います。
buildAgent.zipを介してビルドエージェントをインストールします。conf/buildAgent.propertiesファイルを準備します(少なくともエージェント名を設定します)。適切なエージェントアップグレードプロセスを確保するために、
ビルドエージェントディレクトリのすべてのファイルが使用するビルドユーザーによって所有されていることを確認してください。次のコマンドでビルドエージェントをロードします。
mkdir buildAgent/logs # Directory should be created under your_build_user user sh buildAgent/bin/mac.launchd.sh loadこれらのコマンドは、
使用するビルドユーザーアカウントで実行します。 TeamCity サーバーからビルドエージェントが自動アップグレードされるまで、最大で数分待ちます。 ログでプロセスを監視できます。tail -f buildAgent/logs/teamcity-agent.logビルドエージェントがアップグレードされ、TeamCity サーバーに正常に接続したら、エージェントを停止します:
sh buildAgent/bin/mac.launchd.sh unloadビルドエージェントが TeamCity サーバーからアップグレードされた後、
buildAgent/bin/jetbrains.teamcity.BuildAgent.plistファイルを$HOME/ライブラリ/LaunchAgents/ディレクトリにコピーします (作成が必要な場合があります)。 TeamCity をルート権限で起動したくない場合は、ユーザー名鍵を.plistファイルに指定します。例:<key>UserName</key> <string>your_build_user</string>macOS システムを 自動的にログイン するように
使用するビルドユーザーとして設定します。説明は こちら を参照してください。マシンを再起動します。 システムの始動時に、ビルドユーザーが自動的にログインし、ビルドエージェントが起動するはずです。
ビルドエージェントが実行中であることをすばやく確認するには、次のコマンドを使用します:launchctl list | grep BuildAgent 69722 0 jetbrains.teamcity.BuildAgent
ビルドエージェントの停止
エージェントを手動で停止するには、 停止 パラメーターを指定して <エージェントホーム>\agent スクリプトを実行します。
現在のビルドが完了した後に停止するようリクエストするには、 停止 を使用します。 即時停止をリクエストするには、 停止 強制 を使用します (エージェントでビルドが実行中の場合、そのビルドは突然停止されます (キャンセルされます))。
Linux では、 停止 強制終了 を使用してエージェントプロセスを強制終了することもできます。
コンソールが接続された状態でエージェントが実行されている場合は、コンソールで Ctrl+C を押してエージェントを停止することもできます(ビルドが実行されている場合はキャンセルされます)。
ビルドエージェントが macOS で LaunchAgent サービスとして開始されている場合は、 launchctl ユーティリティを使用して停止できます。