2015-05-28 55 views
4

當執行詹金斯CLI連接拒絕

java -jar jenkins-cli.jar -s https://jenkins_url help 

我得到拒絕連接出於某種原因。 Jenkins版本是1580.3,用戶在Jenkins服務器上具有權限,cli jar是最新的,並且ssh公鑰已正確配置。任何想法可能會造成這種情況?這裏是堆棧跟蹤,如果它會幫助:

Exception in thread "main" java.net.ConnectException: Connection refused 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
at java.net.SocksSocketImpl.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at hudson.cli.CLI.connectViaCliPort(CLI.java:203) 
at hudson.cli.CLI.<init>(CLI.java:126) 
at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72) 
at hudson.cli.CLI._main(CLI.java:466) 
at hudson.cli.CLI.main(CLI.java:382) 
Suppressed: java.io.EOFException: unexpected stream termination 
at hudson.remoting.ChannelBuilder.negotiate(ChannelBuilder.java:331) 
at hudson.remoting.Channel.<init>(Channel.java:421) 
at hudson.remoting.Channel.<init>(Channel.java:400) 
at hudson.remoting.Channel.<init>(Channel.java:396) 
at hudson.remoting.Channel.<init>(Channel.java:385) 
at hudson.remoting.Channel.<init>(Channel.java:377) 
at hudson.remoting.Channel.<init>(Channel.java:353) 
at hudson.cli.CLI.connectViaHttp(CLI.java:157) 
at hudson.cli.CLI.<init>(CLI.java:130) 
... 3 more 

回答

3

如果連接被拒絕,CLI可能被禁用,但更有可能是防火牆或網絡問題。

每一個成功的HTTP請求,詹金斯與CLI端口的HTTP標頭響應,因此您可以快速檢查是否已啓用:

curl -sI http://jenkins/ | grep CLI 

另外,爲documented on the wiki,你可以檢查TCP端口是否被啓用。在http://jenkins/configureSecurity/

查找「用於JNLP從屬代理的TCP端口」但是,由於您的堆棧跟蹤指示CLI客戶端正在嘗試建立到特定端口的連接,因此建議啓用CLI,並且Jenkins將HTTP響應中的端口號。

所以,你可以嘗試手動連接到該端口,以檢查它是否是開放的:

telnet jenkins <cli-port> 

如果你還看到「拒絕連接」在這裏,那麼你知道你的詹金斯和CLI客戶端安裝程序似乎沒問題,但你有網絡問題。在這種情況下,請檢查Jenkins服務器上的防火牆是否允許該CLI端口上的傳入連接。

爲了使防火牆配置更容易,您可以在上述「配置安全性」頁面中從隨機端口切換到固定端口。

+0

謝謝你的一個奇妙的解釋:)這是端口問題,問題是,即使端口設置爲隨機 - 它仍然必須指定。無論如何 - 我達到了我想要的。 – Zloj