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


20

「研究」(読み:私のキーボードに対して私の頭を叩い)の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ビルドエージェントの両方を再起動します。


1
真剣にこれは素晴らしいです。これはまさに私と私たちの管理者の一人が最終的に自分自身で考え出したものです(これはうんざりしました)。すばらしい記事を投稿していただきありがとうございます。
ライアンモンゴメリー

5
あなたは...質問と回答かかわらを分割したい場合があります
ロイス・ダ・ファイブ・ナイン

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.