「研究」(読み:私のキーボードに対して私の頭を叩い)の2つの完全日後とチームシティー/ MSDN / TomcatのドキュメントをのろいだけでなくファントムはバインディングをIISとして、私は非常にややこしい問題への答えを作ってみた:どのようにすることができますWindows Server 2008および必要な目的を果たしているIIS 7を実行しているマルチホームサーバーでTeamCityのIPアドレスとポート番号を変更しますか?。
まず、少しの背景。ビルドサーバーは、1つのNICで2つのIPアドレス(192.168.1.30と192.168.1.31)を使用してWindows Server 2008を実行しています。IISを構成して、その唯一のサイトをポート80で192.168.1.30に明示的にバインドします。この時点で、192.168.1.31は広く開かれ、TeamCityで使用する準備ができていると考えています。
最初の迷惑:TeamCityをインストールするとき、バインドするポートのみを要求するこのサーバーに関連付けられた複数のIPアドレスがあるという事実を完全に無視します。サーバーグレードのソフトウェアの場合、これはかなり驚くべきことです。
2つ目の問題:TeamCityのデフォルトはポート8080です(何ですか??)。最初の煩わしさのため、ポートの選択はやや曖昧です。TeamCityは両方のIPアドレスのポート8080にバインドしますか?ポート選択を80に変更すると、別のサービスが既にポート80にバインドされているという警告が表示されます。うーん、IISは192.168.1.30のポート80にのみバインドする必要があります。192.168.1.31には何もバインドされていません。明らかに、TeamCityは192.168.1.30でIISと競合しています。
TeamCityのインストールを終了し、ポート80を選択し、バインディング警告を無視した後、「C:\ TeamCity \ server.xml」を開きます。補足:「C:\ TeamCity \」はTeamCityのデフォルトのインストールディレクトリであり、「C:\ Users \ .BuildServer」はデフォルトのデータディレクトリです。とにかく、「server.xml」は、TeamCityのWebインターフェイスのポートやIPアドレスなどを設定できる構成ファイルです。少し調査した後、ポート80でIPアドレス192.168.1.31をバインドするための構成を思いつきました。
どちらかを探します
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
または
<Connector
port="80"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
インストール中に選択したポートに応じて。いずれかに変更します(注:IPアドレスを変更してください!)
<Connector
port="80"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
address="192.168.1.31" />
それと同じくらい簡単なはずですよね?まあ、TeamCityのWebサーバーを(Windowsのサービスマネージャー経由で)再起動しても、192.168.1.31では何も起こりません。あー
IISの唯一のサイトがポート80で192.168.1.30に明示的にバインドされていても、IISはすべての IPアドレスでリッスンしていることがわかりました。もちろん、これはTeamCityのWebサーバー(Tomcat)をオフにします。これはオンラインになる前に停止します。Tomcatをコマンドラインから手動で起動してその標準エラーを分析し、さらに調査したところ、StackOverflowのこの小さな宝石に出会いました:IIS7が使用するIPアドレスをどのように制御できますか?
そのため、管理コマンドラインから、私は(実行注意を!:もう一度、あなたはそのIPアドレスにこの時間をIPアドレスを変更したい IISが拘束されることに)
netsh http add iplisten ipaddress = 192.168.1.30
今、TeamCityのWebサーバーを再起動すると、出来上がりです。ポート番号を指定せずに192.168.1.31 を参照すると、TeamCityのWebインターフェイスが表示されます。簡単な健全性チェックにより、IISがまだ192.168.1.30に正しくバインドされていることがわかります。すべては順調です。
このような単純な修正の長い投稿については申し訳ありません。これが他の誰かの助けになることを願っています。それが私を何時間も悪化させることを確実にしたでしょう。
編集:しばらくの間TeamCityを使用した後、TeamCityとともにインストールされたBuild Agentが正しく認識されていないことに気付きました。これを修正するには、Build AgentにTeamCityの新しいURLを指定する必要がありました。この構成の変更は、「C:\ TeamCity \ buildAgent \ conf \ buildAgent.properties」で行われます。繰り返しますが、これはTeamCityのデフォルトインストールのパスであり、TeamCityのインストールをカスタマイズする方法によって異なる場合があります。
「buildAgent.properties」内で、「serverUrl」が新しいTeamCity URLを指していることを確認します。私の場合、次のように更新しました。
serverUrl = http \://192.168.1.31
この変更を行った後、TeamCity WebサーバーとTeamCityビルドエージェントの両方を再起動します。