无法在AWS上将本地从服务器连接到Jenkins主服务器

时间:2018-10-11 16:15:52

标签: macos amazon-web-services ubuntu jenkins amazon-ec2

我已经在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连接没有任何问题。

可能是什么问题?

5 个答案:

答案 0 :(得分:2)

-Dhudson.TcpSlaveAgentListener.hostName中设置属性/etc/default/jenkins解决了我的问题。

答案 1 :(得分:1)

将端口改为固定端口而不是随机端口,并允许将aws中的该特定端口作为TCP的例外,即可解决此问题。

答案 2 :(得分:1)

如果您在环境变量中设置了http_proxy / https_proxy(并且它是jenkins不喜欢的代理),那么这也会引发此神秘错误。

答案 3 :(得分:0)

由于您的Jenkins AWS实例位于 防火墙 之后,因此您的从属将无法使用给定的端口 (49187)连接 (如果端口本身未打开)。 简单地;

  • 在AWS控制台上添加一个安全组,允许在端口(在本例中为49187)上连接您的从IP地址。

p.s: 如果它是一台随机的Jenkins机器,那么简单的sudo ufw allow 49187就足够了:)

答案 4 :(得分:0)

如果不是防火墙问题,请确保在将Jenkins运行到Jenkins主服务器的FQDN时设置“ Dhudson.TcpSlaveAgentListener.hostName”设置,或确保代理可以访问的部分记录。 在我们的情况下,这没有配置为FQDN,并且从站无法到达记录。