【发布时间】:2016-09-05 14:14:30
【问题描述】:
如何强制 jenkins 从站通过其运行命令连接到内部主机名以进行实际 JNLP 连接?
更多关于实际问题的信息(使用假域名)
- 主公众号:https://jenkins.fakehost.com
- 主控内部地址:http://jenkins.fakehost.internal
- 环境:Docker 容器
命令运行:
java -jar slave.jar \
-jnlpUrl http://jenkins.fakehost.internal/computer/SLAVE_NAME/slave-agent.jnlp \
-secret SECRET;
输出 ....
Sep 04, 2016 5:21:38 PM hudson.remoting.jnlp.Main$CuiListener status
9/5/2016 1:21:38 AMINFO: Locating server among [https://jenkins.fakehost.com/, http://jenkins-internal.fakehost.com/]
9/5/2016 1:21:38 AMSep 04, 2016 5:21:38 PM hudson.remoting.jnlp.Main$CuiListener status
9/5/2016 1:21:38 AMINFO: Handshaking
9/5/2016 1:21:38 AMSep 04, 2016 5:21:38 PM hudson.remoting.jnlp.Main$CuiListener status
9/5/2016 1:21:38 AMINFO: Connecting to jenkins.fakehost.com:50000
这随后导致了。
9/5/2016 1:23:56 AM java.net.ConnectException: Connection timed out
9/5/2016 1:23:56 AM at java.net.PlainSocketImpl.socketConnect(Native Method)
9/5/2016 1:23:56 AM at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
9/5/2016 1:23:56 AM at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
9/5/2016 1:23:56 AM at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
9/5/2016 1:23:56 AM at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
9/5/2016 1:23:56 AM at java.net.Socket.connect(Socket.java:589)
9/5/2016 1:23:56 AM at java.net.Socket.connect(Socket.java:538)
9/5/2016 1:23:56 AM at hudson.remoting.Engine.connect(Engine.java:369)
9/5/2016 1:23:56 AM at hudson.remoting.Engine.run(Engine.java:267)
问题是,尽管提供了内部主机名,但从代理尝试检查其公共主机名。并且作为它的 https 端口,但不是 50k 内部端口是有效的。绝望地尝试到一个它无法到达的港口。
我一直试图覆盖命令以强制它使用从站支持的内部主机名
【问题讨论】:
标签: jenkins