我们正在尝试将以前连接的代理连接到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”,但我不确定如何解决。
- 我只看到最近这方面有变化,但除此之外没有太多有用的信息。
有人有主意吗?
4条答案
按热度按时间hjzp0vay1#
如果其他人遇到这个问题,在我的情况下,这是因为我传递了整个URL,即。
http://someurl/jenkins/computer/test/slave-agent. jnlp
它真正想要的是
http://someurl/jenkins/
lpwwtiir2#
不幸的是,我认为这与Jenkins升级有关,我不确定是否有比我发现的更好的解决方案。
这里放我的解决方案,但如果有人知道更好的东西,我会很高兴听到它:)
https://jenkins.mydomain.com
更改为http://[private_ip]:[port]
。java -jar agent.jar -jnlpUrl "file:/path/to/dir/slave-agent.jnlp" -workDir "/path/to/dir"
个cqoc49vn3#
将全局环境变量jenkins.agent.inboundUrl设置为您的专用地址(使用http/https)+端口+后缀(如果已设置)。
此值将用作JNLP文件中的url。这使得可以使用入站tcp代理的专用地址,而不是Jenkins根URL。
请参阅:https://issues.jenkins.io/browse/JENKINS-63222
2g32fytz4#
我修复了在代理主机上生成SSH密钥并在Jenkins控制器上创建SSH凭据的问题。遵循本官方手册的说明:https://www.jenkins.io/doc/book/using/using-agents/