2日間の「調査」(読み取り:頭をキーボードにぶつけて)とTeamCity/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に設定されています(wha ??)。最初の煩わしさが原因で、ポートの選択はややあいまいです。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のデフォルトのinstallationディレクトリですが、「C:\ Users\.BuildServer」はデフォルトのdataディレクトリです。とにかく、「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" />
そんなに簡単なはずですよね... (Windowsのサービスマネージャーを介して)TeamCityのWebサーバーを再起動しても、192.168.1.31では何も起こりません。ああ。
IISの唯一のサイトがポート80で192.168.1.30に明示的にバインドされていても、IISは引き続きallをリッスンしていることがわかりますIPアドレス。もちろん、これはTeamCityのWebサーバー(Tomcat)をスローオフし、オンラインになる前に停止します。コマンドラインから手動でTomcatを起動してstdoutエラーを分析し、さらに詳細な調査を行った後、StackOverflowからこの小さな宝石を見つけました: IIS7が使用するIPアドレスを制御するにはどうすればよいですか?
したがって、管理コマンドラインから実行します(注:もう一度、IPアドレスを変更します。今回は、あなたがwantしたい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と共にインストールされたビルドエージェントが正しく認識されていないことに気付きました。これを修正するには、ビルドエージェントにTeamCityの新しいURLを指定する必要がありました。この構成の変更は、「C:\ TeamCity\buildAgent\conf\buildAgent.properties」で行われます。繰り返しますが、これはTeamCityのデフォルトインストールのパスであり、TeamCityのインストールのカスタマイズ方法によって異なる場合があります。
「buildAgent.properties」内で、「serverUrl」が新しいTeamCity URLを指していることを確認してください。私の場合は、次のように更新しました。
serverUrl = http \://192.168.1.31
この変更を行った後、TeamCity WebサーバーとTeamCityビルドエージェントの両方を再起動します。
回答は上記の元の「質問」の一部です。