web-dev-qa-db-ja.com

実行中のマルチホームWindows Server 2008でTeamCity IPアドレスとポート番号を変更IIS 7

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ビルドエージェントの両方を再起動します。

21
Brad B.

回答は上記の元の「質問」の一部です。

10
Brad B.