在没有JNLP的情况下启动Windows Jenkins代理

时间:2019-05-22 15:43:54

标签: java jenkins jnlp

构建了一个新的Windows Server 2016,以充当jenkins精心打造的构建的目标。我们不应该再使用oracle java,所以我得到了coretta openJDK。 OpenJDK不再支持javaws。可执行文件不附带。我已经看到了一些脚本化的变通办法,但是它们不起作用,而且写得不好,无法引导。

我们应该使用什么来在Windows计算机上启动从属代理?

3 个答案:

答案 0 :(得分:0)

有几种方法可以实现此目的,但是由于这是Windows服务器,因此您可以按照https://github.com/kohsuke/winsw/blob/master/doc/installation.md#winsw-installation-guide上的步骤在没有javaws的情况下将jenkins slave作为服务安装。

答案 1 :(得分:0)

我相信@Mike指的是Install Slave as a Windows service (cmd version),它不需要JNLP / javaws。

或者,在Jenkins 2(我们正在使用2.121.1加WMI Windows Agents(又名Windows-slaves:1.4)下,现在有一个选项“让Jenkins作为Windows服务来控制此Windows从属设备”与Linux节点的方式相同。

Jenkins Node launch config

您必须具有管理员帐户(和密码)。当“ Windows agents fail to start via DCOM"(用于Server 2012的指南)进行远程管理服务时,我们必须遵循编辑注册表的指导。到目前为止,似乎工作正常,YMMV。到目前为止,看来工作正常,没有“微妙的探针”; YMMV。

对于条目:

  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Wow6432Node \ CLSID {72C24DD5-D70A-438B-8A42-98424B88AFB8}
  • HKEY_CLASSES_ROOT \ CLSID {76A64158-CB41-11D1-8B02-00600806D9B6}

(按键有多个匹配项;只需更改指示的两个位置即可)

  1. 启动“ regedit”(以管理员身份)
  2. 在以下目录中找到(Ctrl + F)注册表项:“ {72C24DD5-D70A-438B-8A42-98424B88AFB8}” HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Wow6432Node \ CLSID \
  3. 右键单击并选择“权限”
  4. 将所有者更改为管理员组(高级...)。
  5. 更改管理员组的权限。授予完全控制权。
  6. 将所有者更改回TrustedInstaller(用户是本地计算机上的“ NT Service \ TrustedInstaller”)
  7. 对HKEY_CLASSES_ROOT \ CLSID {76A64158-CB41-11D1-8B02-00600806D9B6}重复步骤1-6。
  8. 重新启动远程注册表服务(管理工具/服务)

答案 2 :(得分:0)

对我来说,在没有 JNLP 的情况下启动 Windows Jenkins 代理的最简单和最好的工作解决方案是在命令提示符 java -jar agent.jar ... 命令中运行。命令参数应该从代理的url中抓取:

http://your_jenkins_url/computer/your_agent_name_or_ip/

我在我的 PC 上下载了 agent.jar,将其移动到所需目录,从移动 agent.jar 的目录启动命令提示符,并使用适当的参数执行建议的命令。

就我而言:

java -jar agent.jar -jnlpUrl http://your_jenkins_url/computer/your_agent_name_or_ip/slave-agent.jnlp -secret 76986574e97c2b635c7076740dc93326eaaf5a3ad30573144915489a1ccfee44 -workDir "D:\jenkins"

这是此处文档中提议的方法之一 - https://www.jenkins.io/doc/administration/requirements/upgrade-java-guidelines/

<块引用>

Java Web Start Java Web Start 已在 Java 11 中删除。当 Jenkins 控制器在 Java 11 上运行,Java Web Start 按钮 将不再出现在 Web UI 中。 Java 11 Jenkins 的代理 无法从下载到网络的 *.jnlp 文件启动服务器 浏览器。

没有替换此功能的计划。将代理连接到 Java 11 上的 Jenkins,带有 SSH Build Agents Plugin 等插件, 操作系统命令行调用 java -jar agent.jar,或通过 使用容器。