複数のTeamCityサーバーをWindowsサービスと同じWindowsボックスで実行することができます。
次の手順では、TeamCity1、TeamCity2、およびTeamCity3という名前のTeamCityの3つのインスタンスをそれぞれポート8080、8081、および8082にインストールすることを前提としています。これらの詳細のいずれかを変更する場合は、手順全体を通して変更に一貫性を保つようにしてください。この手順を機能させるには、各インスタンスを異なるWindowsユーザーアカウントで実行する必要があります。これはTeamCity7.1で行われましたが、他のバージョンで機能するかどうかはわかりません。
手順は次のとおりです。
TeamCityをインストールし、宛先フォルダーとして「C:\TeamCity1」を選択します。
ビルドエージェント(Windowsサービスとコアの両方)のチェックを外します-これらは後でインストールされます。
サーバー用のWindowsサービスのチェックを外しますが、コアはチェックしたままにします。
構成ディレクトリとして「C:\ TeamCity1 \TeamCityData\」を使用します。
このインスタンスに固有のポートを選択してください。私は8080、8081、8082を選びました。
手順1〜5を必要な回数繰り返し、TeamCity2、TeamCity3などに変更し、毎回ポートを変更します。
管理ツールの[コンピューターの管理]に移動し、サービス(TeamCity1、TeamCity2、およびTeamCity3)ごとに1つの一意のWindowsユーザーアカウントを作成します。パスワードの有効期限が切れていないことを確認してください。今のところ、各ユーザーがWindowsにログオンするための十分な権限を持っていることを確認してください。
[すべてのプログラム]>[アクセサリ]>[コマンドプロンプト]に移動し、右クリックして[管理者として実行]を選択して、管理者特権のコマンドプロンプトを開きます。
この手順の最後にあるTeamCityのインスタンスごとにコマンドを実行し、番号1を適切なTeamCityインスタンスに置き換えます。
アカウントごとに「サービスとしてのログオン」権を追加する必要があります。これを行う簡単な方法は、管理ツールからサービスを開き、各サービスを右クリックして[ログオン]タブに移動し、両方のボックスにパスワードを再入力して、[適用]をクリックすることです。
マシンからログオフし、「TeamCity1」としてログインします。
[コントロールパネル]>[ユーザーアカウント]>[ユーザーアカウント]>[環境変数の変更]に移動します。
[新規...]をクリックして、新しいユーザー変数を追加します。C:\ TeamCity1\TeamCityDataの値を使用してTEAMCITY_DATA_PATHという名前を付けます。
TeamCityのインスタンスごとに手順11〜13を繰り返します。
ログオフし、管理者アカウントで再度ログインします。
環境変数ダイアログに戻り、TEAMCITY_DATA_PATHという名前のシステム変数(ユーザー変数ではない)を削除します。
必要に応じて、各TeamCityユーザーアカウントのアクセス許可を変更して、ログインするアクセス許可がないようにします。
C:\ TeamCity1 \ conf \ server.xmlおよびC:\ TeamCity1 \ conf \ server-standard.xmlを開き、サーバーport=8105を選択した別のポートに変更します。両方のファイルで同じポートを使用していることを確認してください。TeamCityのインスタンスごとに繰り返します。
各サービスを開始し、ブラウザに接続して、各サービスのデータディレクトリを構成します。現在のインスタンスを除くすべてのteamcityサービスインスタンスを停止する必要がありました。そうしないと、ビルドプロセス中に「クライアントが認証されていません」というエラーが発生しましたが、完了すると問題なく動作するようです。
必要に応じてデータベースアクセスを構成します。
これらの手順を使用して、同じマシンに複数のビルドエージェントをインストールします。通信は双方向であり、複数のポートを構成する方法はないように思われるため、TeamCityインスタンス間でエージェントを共有することはできないと思います。そのため、エージェントをCにインストールするのがおそらく最善です。 \ TeamCity1 \ buildAgent1 \という名前のTeamCity1BuildAgent1、C:\ TeamCity1 \ buildAgent2 \という名前のTeamCity1BuildAgent2、C:\ TeamCity2 \buildAgent1\という名前のTeamCity2BuildAgent1など。
各TeamCityインスタンス(80および/または443)に標準ポートを使用する場合は、次の手順に従って、IISをTomcatのプロキシとして使用します。
Run these commands at step #9 above
sc create TeamCity1 binPath= "\"C:\TeamCity1\bin\TeamCityService.exe\" jetservice \"/settings=C:\TeamCity1\conf\teamcity-server-service.xml\" \"/LogFile=C:\TeamCity1\logs\teamcity-winservice.log\"" DisplayName= "TeamCity Server 1" start= auto obj= ".\TeamCity1" password= "Password1"
sc description "TeamCity1" "JetBrains TeamCity server service 1"
NOTE: teamcity is misspelled as "teamicty" as the name of the config file in some builds.
This is a TeamCity bug, make sure you correct the file name before
executing these commands.