Jenkins IllegalArgumentException,同时添加了一个新的奴隶

时间:2019-10-14 11:13:13

标签: jenkins illegalargumentexception jenkins-slave

我想为Jenkins添加一个新的奴隶。当我遵循Jenkins UI时,它会向我提供以下命令

java -jar agent.jar -jnlpUrl http://<jenkins_url>/computer/<slave_name>/slave-agent.jnlp -secret 4b59708a20e155c8ccb39f1fb046be09f72c712ed839401195c475d5fdb2b0e5

当我尝试执行该命令时,其输出如下:

Exception in thread "main" java.lang.IllegalArgumentException: IV buffer too short for given offset/length combination
        at javax.crypto.spec.IvParameterSpec.<init>(IvParameterSpec.java:80)
        at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:515)
        at hudson.remoting.Launcher.run(Launcher.java:325)
        at hudson.remoting.Launcher.main(Launcher.java:283)

您能帮我解决这个错误吗?任何帮助将不胜感激。提前致谢。

最好的问候。

1 个答案:

答案 0 :(得分:0)

我回顾了Jenkins代码以及Jenkins代理代码(远程处理)中IV长度的设置,似乎到处都将其设置为16字节。

但是,通过运行curl来获取slave-agent.jnlp URL($JENKINS_URL/computer/$node_name/slave-agent.jnlp),我发现我认为应该的http:// URL使用只会返回“ 302 Found”,并将“ location”标头设置为相同的URL,但带有https://。 curl引起了我的注意,我看到了有关Jenkins中缺少权限的消息(先读取,再连接到Connect代理)。添加匿名用户的密码(在$JENKINS_URL/configureSecurity,使用基于矩阵的安全性)为我解决了这个问题。

或者,它变成了另一个问题,即“连接被拒绝”。我花了一段时间才弄清楚-对于我们的运行在容器中的Jenkins主服务器-在全局安全性配置中,“入站代理程序的TCP端口”必须设置为容器内部端口,而在节点配置中,必须将“通过隧道连接”设置为外部端口。

我希望我的调试工作也至少部分适用于您的情况。