Jenkins IllegalArgumentException 同时添加新的从属服务器



我想给 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)

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

此致敬意。

我查看了 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 中缺少权限的消息(读取,然后连接代理(。为匿名用户添加那些(在$JENKINS_URL/configureSecurity,使用基于矩阵的安全性(为我解决了这个问题。

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

我希望我的调试练习也至少部分适用于您的上下文。

最新更新