未读取 Jenkins 代理的本地 JNLP 文件

问题描述 投票:0回答:2

我正在尝试将 Jenkins 代理连接到控制器。

我们只能从公司防火墙打开一个端口(例如 8888)来与 AWS 上托管的控制器进行通信。该端口用于连接到控制器 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 进程无法读取该文件的任何线索?

java jenkins jnlp jenkins-agent
2个回答
5
投票

@gareth_bowles 的回答至少在今天是错误的,该 url 也可以用作文件 url。不知道这是否在某个时候被改变了。

对于我们的 Windows 从机来说,它是

"file:/D:/jenkins-slave/slave-agent.jnlp"
,可以工作。


2
投票

jnlpUrl 参数需要是指向 Jenkins master 的 http 或 https 链接,例如http://jenkins.yourco.com/computer/slavename/slave-agent.jnlp - 它不能用作文件 URL。

© www.soinside.com 2019 - 2024. All rights reserved.