我已经在AWS ec2实例上设置了Jenkins。我有几台机器(Ubuntu,Mac)应该是奴隶。
我已经在Jenkins主服务器上配置了节点,并且试图通过随机端口使用JNLP-4协议连接从服务器。
我已启用安全性,将代理的TCP端口选择为“随机”,通过远程启用CLI,启用代理->主访问控制。
完成所有这些操作后,当我尝试连接时出现以下错误:
Vighneshs-MBP:Downloads vighneshpai$ java -jar agent.jar -jnlpUrl https://my.host.name/computer/Mac/slave-agent.jnlp -secret cf400d1a4e0a1dcc75da2b361efafbce3321e17b935bdcf14350a36e
Oct 11, 2018 8:43:50 PM hudson.remoting.jnlp.Main createEngine
INFO: Setting up agent: Mac
Oct 11, 2018 8:43:50 PM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
Oct 11, 2018 8:43:50 PM hudson.remoting.Engine startEngine
INFO: Using Remoting version: 3.25
Oct 11, 2018 8:43:50 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /Users/vighneshpai/Downloads/remoting as a remoting work directory
Both error and output logs will be printed to /Users/vighneshpai/Downloads/remoting
Oct 11, 2018 8:43:50 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [https://my.host.name/]
Oct 11, 2018 8:43:51 PM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
INFO: Remoting server accepts the following protocols: [JNLP4-connect, JNLP-connect, Ping, JNLP2-connect, JNLP3-connect]
Oct 11, 2018 8:43:56 PM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver isPortVisible
WARNING: connect timed out
Oct 11, 2018 8:43:56 PM hudson.remoting.jnlp.Main$CuiListener error
SEVERE: https://my.host.name/ provided port:49187 is not reachable
java.io.IOException: https://my.host.name/ provided port:49187 is not reachable
at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:286)
at hudson.remoting.Engine.innerRun(Engine.java:523)
at hudson.remoting.Engine.run(Engine.java:474)
我也尝试过使用固定端口,并将该端口添加到允许的入站访问端口列表中。仍然无法连接。
相同的计算机,与在本地计算机上运行的Jenkins连接没有任何问题。
可能是什么问题?
答案 0 :(得分:2)
在-Dhudson.TcpSlaveAgentListener.hostName
中设置属性/etc/default/jenkins
解决了我的问题。
答案 1 :(得分:1)
将端口改为固定端口而不是随机端口,并允许将aws中的该特定端口作为TCP的例外,即可解决此问题。
答案 2 :(得分:1)
如果您在环境变量中设置了http_proxy / https_proxy(并且它是jenkins不喜欢的代理),那么这也会引发此神秘错误。
答案 3 :(得分:0)
由于您的Jenkins AWS实例位于 防火墙 之后,因此您的从属将无法使用给定的端口 (49187)连接 (如果端口本身未打开)。 简单地;
p.s: 如果它是一台随机的Jenkins机器,那么简单的sudo ufw allow 49187
就足够了:)
答案 4 :(得分:0)
如果不是防火墙问题,请确保在将Jenkins运行到Jenkins主服务器的FQDN时设置“ Dhudson.TcpSlaveAgentListener.hostName”设置,或确保代理可以访问的部分记录。 在我们的情况下,这没有配置为FQDN,并且从站无法到达记录。