由于标题已经声明不赞成使用JNLP连接,Jenkins还提供了一条消息和一个超链接
https://zh.wikipedia.org/wiki/Java_Web_Start#已弃用
因此,现在将WindowsSlave附加到Jenkins的推荐方法是什么,在https://jenkins.io上似乎没有关于该主题的真正好的指南。
有一个开源替代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-slave.exe(aka winsw-*.exe)从命令行安装Jenkins服务时,不再需要Java Web Start。似乎JNLP协议仍在幕后使用,因此将来可能仍然存在弃用问题。
jenkins-slave.exe
winsw-*.exe
步骤 (假设您已经在Jenkins master中设置了节点):
从http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/下载最新的服务包装(例如“ winsw-2.2.0-net4.exe”), 将其放在Custom WorkDir路径中并重命名到“ jenkins-slave.exe”
下载“ agent.jar”:http://YourJenkinsServer:8080/jnlpJars/agent.jar 将其放置在Custom WorkDir路径中,并将其重命名为“ slave.jar”
http://YourJenkinsServer:8080/jnlpJars/agent.jar
在同一目录中创建“ 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>
根据您的环境调整“ jenkins-slave.xml”。确保调整所有以“ Your”为前缀的字符串以及“ java.exe”的路径。您可以在Jenkins主节点(例如http://YourJenkinsServer:8080/computer/YourNodeName/)的节点配置页面上找到秘密字符串并更正jnlpUrl 。 官方文件
http://YourJenkinsServer:8080/computer/YourNodeName/
创建“ jenkins-slave.exe.conf”文件,以防止可执行文件在.NET Framework的早期版本上运行。
<configuration> <startup> <supportedRuntime version="v4.0"/> </startup> </configuration>
以管理员身份启动“ cmd.exe”,并导航到“ jenkins-slave.exe”目录。
安装服务: jenkins-slave.exe install
jenkins-slave.exe install
启动服务: sc start YourJenkinsSlaveServiceId
sc start YourJenkinsSlaveServiceId