IIS 7 çalıştıran çok bağlantılı Windows Server 2008 işletim sistemindeki TeamCity IP adresini ve bağlantı noktası numarasını değiştirme


20

İki tam günlük "araştırma" (okuma: başımı klavyeme vurma) ve TeamCity / MSDN / Tomcat belgelerinde ve fantom IIS bağlarında lanetlendikten sonra, çok şaşırtıcı bir sorunun cevabını buldum: Nasıl yapabilirim? TeamCity'nin IP adresini ve bağlantı noktası numarasını Windows Server 2008 çalıştıran çok bağlantılı bir sunucuda ve gerekli bir amaca hizmet eden IIS 7'de değiştiriyorum? .

İlk olarak biraz arka plan. Yapı sunucumuz, bir NIC üzerinde iki IP adresiyle (192.168.1.30 ve 192.168.1.31) Windows Server 2008 çalıştırıyor. IIS'yi tek ve tek sitesini 80 numaralı bağlantı noktasında 192.168.1.30'a açıkça bağlayacak şekilde yapılandırdım. Bu noktada 192.168.1.31'in açık ve TeamCity için kullanılmaya hazır olduğunu düşünüyorum ... tam olarak değil.

İlk sıkıntı: TeamCity'yi yüklerken, bu sunucu ile ilişkili olan ve sadece hangi bağlantı noktasına bağlanması gerektiğini soran birden fazla IP adresi olduğu gerçeğini tamamen göz ardı eder. Sunucu sınıfı yazılımlar için bu oldukça şaşırtıcı.

İkinci sıkıntı: TeamCity varsayılan olarak 8080 numaralı bağlantı noktasını kullanır (ne ??). İlk sıkıntı nedeniyle, bağlantı noktası seçimi biraz belirsiz: TeamCity her iki IP adresinde de 8080 numaralı bağlantı noktasına bağlanacak mı? Bağlantı noktası seçiminin 80 olarak değiştirilmesi, başka bir hizmetin zaten bağlantı noktası 80'e bağlı olduğuna dair bir uyarı verir. Hmm, IIS'nin yalnızca 192.168.1.30'da bağlantı noktası 80'e bağlanması gerekir; 192.168.1.31'e hiçbir şey bağlı olmamalıdır. Açıkçası TeamCity 192.168.1.30 tarihinde IIS ile rekabet ediyor.

TeamCity kurulumunu bitirdikten sonra, bağlantı noktası 80'i seçtikten ve bağlama uyarısını göz ardı ettikten sonra, "C: \ TeamCity \ server.xml" yi açtım. Sidenote: "C: \ TeamCity \", TeamCity için varsayılan kurulum dizini iken "C: \ Users \ .BuildServer" varsayılan veri dizinidir. Her neyse, "server.xml", TeamCity'nin web arayüzünün bağlantı noktası ve IP adresi gibi şeyleri ayarlayabileceğiniz yapılandırma dosyasıdır. Biraz araştırma yaptıktan sonra, 80 numaralı bağlantı noktasına 192.168.1.31 IP adresini bağlamak için bir yapılandırma buldum:

İkisini de arayın

<Connector
    port="8080"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

veya

<Connector
    port="80"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

kurulum sırasında seçtiğiniz porta bağlıdır. İkisinden birini değiştirin ( not: IP adresini değiştirin! )

<Connector
    port="80"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"
    address="192.168.1.31" />

Bu kadar kolay olmalı, değil mi? TeamCity'nin Web Sunucusunu (Windows Servis Yöneticisi aracılığıyla) yeniden başlatmak 192.168.1.31'de hiçbir sonuç getirmez. Ugh.

IIS'nin tek ve tek sitesi 80 numaralı bağlantı noktasında açıkça 192.168.1.30'a bağlı olsa da, IIS yine de tüm IP adreslerini dinliyor . Bu, elbette, çevrimiçi olmadan önce duran TeamCity'nin Web Sunucusunu (Tomcat) atar. Tomcat'i stdout hatasını ve hatta daha fazla araştırmayı incelemek için komut satırından el ile başlattıktan sonra, StackOverflow'un bu küçük gemisinde gerçekleştim: IIS7'nin hangi IP adresini kullandığını nasıl kontrol edebilirim?

Bu nedenle, bir Yönetici komut satırından çalıştırıyorum ( not: tekrar IP adresini değiştirin! Bu sefer IIS'nin bağlanmasını istediğiniz IP adresine )

netsh http ekle iplisten ipadresi = 192.168.1.30

Şimdi TeamCity'nin Web Sunucusunu ve voila'yı yeniden başlatıyorum, işe yarıyor !! Bir bağlantı noktası numarası belirtmeden 192.168.1.31'e göz atabilirim ve TeamCity'nin web arayüzü gelir. Hızlı bir sağlık kontrolü IIS'nin hala 192.168.1.30 ile doğru şekilde bağlı olduğunu gösterir. Herşey iyi.

Böyle basit bir düzeltme için uzun yazı için üzgünüm. Umarım bu bana başkalarının yardım etmesine yardımcı olur, çünkü bana saatler süren ağırlıklar kurtarırdı.


Düzenleme: TeamCity bir süre kullandıktan sonra, TeamCity ile yüklenmiş olan Build Agent'ın doğru bir şekilde tanınmadığını fark ettim. Bunu düzeltmek için, Build Agent'ı TeamCity için yeni URL'ye yönlendirmem gerekiyordu. Bu yapılandırma değişikliği "C: \ TeamCity \ buildAgent \ conf \ buildAgent.properties" içinde yapılır. Yine, TeamCity'nin varsayılan yüklemesinin yolu budur ve TeamCity yüklemenizi nasıl özelleştirdiğinize bağlı olarak farklı olabilir.

"BuildAgent.properties" içinde "serverUrl" ifadesinin yeni TeamCity URL'sini gösterdiğinden emin olun. Benim durumumda şu şekilde güncelledim:

ServerUrl = http \: //192.168.1.31

Bu değişikliği yaptıktan sonra, hem TeamCity Web Server'ı hem de TeamCity Build Agent'ı yeniden başlatın.


1
Cidden bu harika. Bu tam olarak ne ve bizim yöneticilerinden biri sonunda (ki emdi) kendi başına anladım. Harika bir yazı yayınladığınız için teşekkür ederiz.
Ryan Montgomery

5
Yine de soruyu ve cevabı kırmak isteyebilirsiniz ...
Ryan Montgomery

Yanıtlar:


10

Cevap, yukarıdaki orijinal "sorunun" bir parçasıdır.


2
Birkaç saatimi kurtardığın için +1!
Tim Long
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.