java - 使用 OpenJDK 将 Jenkins 节点/代理作为 Windows 服务运行

标签 java windows jenkins

我有一台安装了 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 .

  1. 下载NSSM
  2. 打开 cmd 并安装服务(我使用 JenkinsService 作为服务名称):
    <path to nssm.exe>\nssm install <Servicename>
    
  3. 将jdk的路径插入字段Path
  4. 将其余部分添加到字段 Arguments 中:
    -jar agent.jar -jnlpUrl https://jenkinsserver/blah/slave-agent.jnlp -secret blah -workDir "somedirectory"
    
  5. 点击安装服务

现在可以在windows服务管理器中查看到新服务JenkinsService了。它一运行,您就可以检查与主服务器的连接。

关于java - 使用 OpenJDK 将 Jenkins 节点/代理作为 Windows 服务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58349113/

相关文章:

java - 使用 Java 中的 Scanner import 将扫描的单词读取到数组中

java - 递归在该方法中如何工作?

Python Windows 服务 pyinstaller 可执行文件错误 1053

jenkins - Jenkins 上 Xcode8 的 iOS10 构建创建问题

php - Behat with Jenkins - 如何为 PHP 应用程序提供服务?

java - Document.getString 没有给出输出 (Firestore)

java - IntelliJ 将 'generated' 文件夹/包添加到工件

c++ - 是否可以 Hook 子进程发送到 Windows 控制台的消息?

windows - 是否可以使用 start 从 cmd 文件使用输出重定向?

jenkins - 是否可以将 Jenkins 配置为不在分支发现上运行管道?