一尘不染

Jenkins中不推荐使用JNLP Connections,将Windows从站连接到jenkins的新推荐方法是什么?

jenkins

由于标题已经声明不赞成使用JNLP连接,Jenkins还提供了一条消息和一个超链接

https://zh.wikipedia.org/wiki/Java_Web_Start#已弃用

因此,现在将WindowsSlave附加到Jenkins的推荐方法是什么,在https://jenkins.io上似乎没有关于该主题的真正好的指南。


阅读 439

收藏
2020-07-25

共1个答案

一尘不染

开源替代

有一个开源替代OpenWebStart这是基于IcedTeaWeb

更多信息:Java Web Start已失效-OpenWebStart万岁!

OpenWebStart是WebStart和JNLP标准(JSR-56)的开源实现。

[…]

在IcedTeaWeb中,我们目前正在努力映射JNLP规范并在最大程度上支持其功能。除以IcedTeaWeb为核心的OpenWebStart外,在AdoptOpenJDK中还使用IcedTeaWeb,以在AdoptOpenJDK的Java
8版本中提供最少的WebStart。但是,与OpenWebStart相比,它们受到限制,因为它们只能使用当前的JVM来运行基于JNLP的应用程序。

使用Jenkins服务的命令行安装摆脱Java Web Start

使用jenkins-slave.exe(aka winsw-*.exe)从命令行安装Jenkins服务时,不再需要Java Web
Start。似乎JNLP协议仍在幕后使用,因此将来可能仍然存在弃用问题。

步骤 (假设您已经在Jenkins master中设置了节点):

  1. http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/下载最新的服务包装(例如“ winsw-2.2.0-net4.exe”),
    将其放在Custom WorkDir路径中并重命名到“ jenkins-slave.exe”

  2. 下载“ agent.jar”:http://YourJenkinsServer:8080/jnlpJars/agent.jar
    将其放置在Custom WorkDir路径中,并将其重命名为“ slave.jar”

  3. 在同一目录中创建“ jenkins-slave.xml”:

        <service>
      <id>YourJenkinsSlaveServiceId</id>
      <name>Your Jenkins Slave Service Name</name>
      <description>This service runs an agent for Jenkins automation server.</description>
      <executable>C:\Program Files\Java\JRE8\bin\java.exe</executable>
      <arguments>-Xrs -jar "%BASE%\slave.jar" -jnlpUrl http://YourJenkinsServer:8080/computer/YourNodeName/slave-agent.jnlp -secret YourSecretStringConsistingOfHexadecimalCharacters -workDir=C:\YourNodeWorkDir</arguments>
      <logmode>rotate</logmode>
      <onfailure action="restart" />
      <download from="http://YourJenkinsServer:8080/jnlpJars/agent.jar" to="%BASE%\slave.jar"/>
     <extensions>
        <extension enabled="true" className="winsw.Plugins.RunawayProcessKiller.RunawayProcessKillerExtension" id="killOnStartup">
          <pidfile>%BASE%\jenkins_agent.pid</pidfile>
          <stopTimeout>5000</stopTimeout>
          <stopParentFirst>false</stopParentFirst>
        </extension>
      </extensions>
    </service>
  1. 根据您的环境调整“ jenkins-slave.xml”。确保调整所有以“ Your”为前缀的字符串以及“ java.exe”的路径。您可以在Jenkins主节点(例如http://YourJenkinsServer:8080/computer/YourNodeName/)的节点配置页面上找到秘密字符串并更正jnlpUrl 。
    官方文件

  2. 创建“ jenkins-slave.exe.conf”文件,以防止可执行文件在.NET Framework的早期版本上运行。

        <configuration>
      <startup>
        <supportedRuntime version="v4.0"/>
      </startup>
    </configuration>
  1. 以管理员身份启动“ cmd.exe”,并导航到“ jenkins-slave.exe”目录。

  2. 安装服务:
    jenkins-slave.exe install

  3. 启动服务:
    sc start YourJenkinsSlaveServiceId

2020-07-25