没有为jenkins slave读取本地JNLP文件

时间:2014-04-08 00:30:15

标签: java jenkins jnlp master-slave

我正在尝试将jenkins slave连接到master。

我们被允许只有一个端口(比如说8888)从公司防火墙打开,以便与AWS上托管的主人交谈。该端口用于连接在master jenkins机器上运行的jnlp进程。由于这个原因,我们无法使用http下载slave-agent.jnlp文件。我手动下载了slave-agent.jnlp文件,我试图给出以下命令来启动代理。

java -jar slave.jar -jnlpUrl file:///oracle/app/jenkins/slave-agent.jnlp -secret 7f079707d5632d2db2501be73f1a6f5f6422b9c9fde806afd8fdd2000d5db123

我收到以下错误

Failing to obtain file:/oracle/app/jenkins/slave-agent.jnlp?encrypt=true
java.io.IOException: file:/oracle/app/jenkins/slave-agent.jnlp?encrypt=true doesn't look like a JNLP file; content type was null
    at hudson.remoting.Launcher.parseJnlpArguments(Launcher.java:301)
    at hudson.remoting.Launcher.run(Launcher.java:218)
    at hudson.remoting.Launcher.main(Launcher.java:192)
Waiting 10 seconds before retry

我也试过这个没有运气。

java -jar slave.jar -jnlpUrl file://localhost/oracle/app/jenkins/slave-agent.jnlp -secret 7f079707d5632d2db2501be73f1a6f5f6422b9c9fde806afd8fdd2000d5db123

该文件存在于具有读写权限的位置。

有关为什么java进程无法读取该文件的任何线索?

2 个答案:

答案 0 :(得分:3)

@gareth_bowles的回答至少在今天是错误的,网址也可以用作文件网址。不知道这是否在某些时候发生了变化。

对于我们的Windows奴隶,它是"file:/D:/jenkins-slave/slave-agent.jnlp",这是有效的。

答案 1 :(得分:1)

jnlpUrl参数需要是Jenkins主控的http或https链接,例如http://jenkins.yourco.com/computer/slavename/slave-agent.jnlp -it不能用作文件网址。