我正在尝试将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进程无法读取该文件的任何线索?
答案 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不能用作文件网址。