严重:https://jenkins.domainname.com/tcpSlaveAgentListener/似乎正在发布无效的X-Instance-Identity

gpnt7bae  于 2023-08-03  发布在  Jenkins
关注(0)|答案(4)|浏览(232)

我们正在尝试将以前连接的代理连接到Jenkins服务器。
我们得到以下错误:

SEVERE: https://jenkins.domainname.com/tcpSlaveAgentListener/ appears to be publishing an invalid X-Instance-Identity.
java.io.IOException: https://jenkins.domainname.com/tcpSlaveAgentListener/ appears to be publishing an invalid X-Instance-Identity.
    at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:287)
    at hudson.remoting.Engine.innerRun(Engine.java:694)
    at hudson.remoting.Engine.run(Engine.java:519)

字符串
运行代理的命令为:
java -jar agent.jar -jnlpUrl http://${private_ip}:8080/computer/mac/slave-agent.jnlp -secret ${secret} -workDir“/var/jenkins-sign”

  • 我们在MacOS上运行。
  • mac和${private_ip}之间的所有TCP端口都是内部开放的。我有telnet工作。
  • 如前所述,此代理最近连接到服务器,但该代理已重新启动。我们还将Jenkins服务器升级到最新版本。
  • 我更新了agent.jar文件。
  • 我认为这与联系${private_ip}有关,而X-Instance-Identit显示为“jenkins.dommainame.com”,但我不确定如何解决。
  • 我只看到最近这方面有变化,但除此之外没有太多有用的信息。

有人有主意吗?

hjzp0vay

hjzp0vay1#

如果其他人遇到这个问题,在我的情况下,这是因为我传递了整个URL,即。
http://someurl/jenkins/computer/test/slave-agent. jnlp
它真正想要的是
http://someurl/jenkins/

lpwwtiir

lpwwtiir2#

不幸的是,我认为这与Jenkins升级有关,我不确定是否有比我发现的更好的解决方案。
这里放我的解决方案,但如果有人知道更好的东西,我会很高兴听到它:)

  • 下载agent.jar
  • 下载slave-agent.jnlp并修改它:
  • 将所有出现的https://jenkins.mydomain.com更改为http://[private_ip]:[port]
  • 启动该过程:java -jar agent.jar -jnlpUrl "file:/path/to/dir/slave-agent.jnlp" -workDir "/path/to/dir"
  • 不要将密码添加到此命令。
  • 如果您使用Jenkins代理作为服务,请从文件中删除-secret参数。
cqoc49vn

cqoc49vn3#

将全局环境变量jenkins.agent.inboundUrl设置为您的专用地址(使用http/https)+端口+后缀(如果已设置)。
此值将用作JNLP文件中的url。这使得可以使用入站tcp代理的专用地址,而不是Jenkins根URL。
请参阅:https://issues.jenkins.io/browse/JENKINS-63222

2g32fytz

2g32fytz4#

我修复了在代理主机上生成SSH密钥并在Jenkins控制器上创建SSH凭据的问题。遵循本官方手册的说明:https://www.jenkins.io/doc/book/using/using-agents/

相关问题