私はWindows上でJenkinsをホストしています(歴史的な理由)1.620に2.62
アクセスできなくなった細かい点を除いて、すべてが期待どおりに動作します。ホストからのアクセスのみが機能します。
これについては多数の投稿を見つけましたが、それらはすべて起動パラメータを次のように変更することを提案していました。
--httpListenAddress=0.0.0.0
または
--httpListenAddress=HOST
両方の解決策を試しましたが、結果は同じでした。Jenkins は、ホストから次のようにアクセスすると動作します。
- 127.0.0.1
- 10.0.1.11 (内部IP)
- xxxx (外部 IP)
- ホスト
ただし、他のマシンからアクセスした場合は機能しません。
ファイアウォールと Azure の設定を確認しました。他のサービス (nexus:8081) は期待どおりにアクセスできます。ポートを 8080 に変更しても効果はありませんでした。
それはjenkins.xml
<service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins continuous integration system.
</description>
<env name="JENKINS_HOME" value="%BASE%"/>
<env name="HTTP_HOST" value="HOST.cloudapp.net"/>
<executable>%JAVA_HOME%\jre\bin\java</executable>
<arguments>-Xrs -Xmx512M -Dfile.encoding=UTF8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=80 --httpListenAddress="%HTTP_HOST%" --webroot="%BASE%\war"</arguments>
<logmode>rotate</logmode>
<onfailure action="restart" />
</service>
それはジェンキンスのログです
INFO: Started w.@1750fbeb{/,file:///E:/Program%20Files%20(x86)/Jenkins/war/,AVAILABLE}{E:\Program Files (x86)\Jenkins\war}
May 25, 2017 2:17:51 AM org.eclipse.jetty.server.AbstractConnector doStart
INFO: Started ServerConnector@7ae0a9ec{HTTP/1.1,[http/1.1]}{HOST.cloudapp.net:80}
May 25, 2017 2:17:51 AM org.eclipse.jetty.server.Server doStart
INFO: Started @4534ms
May 25, 2017 2:17:51 AM winstone.Logger logInternal
INFO: Winstone Servlet Engine v4.0 running: controlPort=disabled
May 25, 2017 2:17:54 AM jenkins.InitReactorRunner$1 onAttained
INFO: Started initialization
May 25, 2017 2:17:55 AM jenkins.InitReactorRunner$1 onAttained
INFO: Listed all plugins
(removed few lines about ruby failing)
INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:36
May 25, 2017 2:18:04 AM jenkins.InitReactorRunner$1 onTaskFailed
SEVERE: Failed Loading plugin ruby-runtime v0.12 (ruby-runtime)
May 25, 2017 2:18:40 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running
httpListenAddress
ログが記録されたのはいつ0.0.0.0
ですか:
INFO: Started ServerConnector@7ae0a9ec{HTTP/1.1,[http/1.1]}{0.0.0.0:80}
答え1
この質問はJenkinsとは何の関係もないことがわかりました。回答しようとした方にはお詫び申し上げます。(正しい設定は、のデフォルト値を使用するかhttpListenAddress
、 に設定することです--httpListenAddress=0.0.0.0
)
それはWindowsファイアウォールでした。古いジェンキの場合 -1.620ファイアウォールにはJava 6ポート80。新しいジェンキンスはJava 8ブロックされました。
ファイアウォールのルールを変更することで問題は解決しました。
答え2
PowerShell スクリプトで Windows に Jenkins をインストールしようとしている人のために、ファイアウォールにポートを開くように指示する方法は次のとおりです。
New-NetFirewallRule -Name jenkins -DisplayName 'Jenkins' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 8080