添加新奴隶时 Jenkins IllegalArgumentException

标签 jenkins illegalargumentexception jenkins-slave

我想给 Jenkins 添加一个新的 slave。当我遵循 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” header 设置为相同的 URL,但带有 https://。 curl,我在 Jenkins 中看到有关缺少权限的消息(读取,然后连接代理)。为匿名用户添加那些(在 $JENKINS_URL/configureSecurity,使用基于矩阵的安全性)为我解决了这个问题。

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

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

关于添加新奴隶时 Jenkins IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58375588/

相关文章:

docker - 如何找到Docker URL?

linux - 不想让 Jenkins Slave 克隆 repo?

objective-c - 在 xcodebuild 期间找不到 RestKit/RestKit.h' 文件错误

java - Java 中的 eBay Finding API 抛出 'IllegalArgumentException: Not supported: indent-number' 异常

android - FileProvider 抛出 IllegalArgumentException

android-studio - Android Studio 模拟器 - 截取屏幕截图时出现 IllegalArgumentException

带标签或节点的Jenkins管道代理调用从节点?

jenkins - readYaml 方法不适用于 Jenkins

jenkins - 如何在 Jenkins 管道中设置默认选择?

svn - 如果 svn 轮询失败,则不要执行 jenkins 作业