我有一台安装了 OpenJDK 13 的 Windows 虚拟机,我想将其设置为 Jenkins 节点/代理。
当我使用 Jenkins UI 创建节点配置并选择 Launch Method: Launch Agent by connecting it to master 它提供了一个下载 slave-agent.jnlp 的链接
在原始 jdk/jre 版本 9 之前的系统上,它包含 java web start,如果我运行那个 jnlp 文件,它会弹出一个带有菜单的窗口,其中包括一个选项文件 - 作为服务安装
但是,由于 OpenJDK(我相信任何大于 8 的 JRE/JDK 版本)不包含 Java Web Start,我似乎无法访问该选项。
我能够成功运行 java -jar agent.jar -jnlpUrl https://jenkinsserver/blah/slave-agent.jnlp -secret blah -workDir "somedirectory"并让节点向 Jenkins 注册,但它没有作为服务运行。
我有一个仍在使用旧版本 JRE 的旧代理,所以我查看了它的 Jenkins 服务配置,不幸的是它似乎依赖于可执行文件、.config 文件和 xml 文件),我无法确定其来源,除了在从 slave-agent.jnlp 运行“安装为服务”指令时必须创建它们之外
我还尝试使用 IcedTea-Web,它显然应该是 Java Web Start 的替代品,但我没有成功。
谁能告诉我如何将运行 OpenJDK 的 Windows 机器设置为 Jenkins 节点/代理,并将 Jenkins 节点/代理组件作为 Windows 服务运行?
最佳答案
我遇到了类似的问题,现在我使用 NSSM .
- 下载NSSM
- 打开
cmd
并安装服务(我使用 JenkinsService 作为服务名称):<path to nssm.exe>\nssm install <Servicename>
- 将jdk的路径插入字段
Path
- 将其余部分添加到字段
Arguments
中:-jar agent.jar -jnlpUrl https://jenkinsserver/blah/slave-agent.jnlp -secret blah -workDir "somedirectory"
- 点击安装服务
现在可以在windows服务管理器中查看到新服务JenkinsService了。它一运行,您就可以检查与主服务器的连接。
关于java - 使用 OpenJDK 将 Jenkins 节点/代理作为 Windows 服务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58349113/