由于标题已经声明不赞成使用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 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”
在同一目录中创建“ 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 。
官方文件
创建“ jenkins-slave.exe.conf”文件,以防止可执行文件在.NET Framework的早期版本上运行。
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
以管理员身份启动“ cmd.exe”,并导航到“ jenkins-slave.exe”目录。
安装服务:
jenkins-slave.exe install
启动服务:
sc start YourJenkinsSlaveServiceId
问题内容: 我正在寻找一种可靠的解决方案,以从Go连接到MySQL数据库。我已经看到了一些库,但是很难确定完整性和当前维护的不同状态。我没有复杂的需求,但是我想知道人们所依赖的是什么,或者连接到MySQL的最标准的解决方案是什么。 问题答案: 有一些驱动程序可用,但您应仅考虑将实现数据库/ sql API的驱动程序视为 它提供了一种干净高效的语法, 它确保您以后可以更改驱动程序而无需更改代码(导入
我使用hystrix api版本1.5.4。我看到的方法已被弃用。替代方法是什么?
问题内容: 现在我正在使用类似 我需要您的意见以最好/最有效的方式对密码进行加密,当然,加密的密码应受PHP 7.xx支持,并且也应可解密,因为我的客户确实希望选择“恢复”密码而不生成新密码一。 问题答案: 最佳做法是对密码进行哈希处理,以使密码不可解密。这使可能已获得对数据库或文件的访问权限的攻击者的处境变得更加困难。 如果必须加密数据并使其可解密,请访问https://paragonie.co
问题内容: 我已经看到了许多在API上使用注释以将其标记为“需要尽快替换”的示例。 但是,在几乎所有这些情况下,代码开发人员不仅继续使用已弃用的API,而且还抑制了弃用警告。 似乎API开发人员的最佳意图最终是创建更多与已实现的业务逻辑无关的代码- 如果不赞成使用API,但在抑制相关警告的情况下继续使用它,则似乎充其量只是代码的降级,并且在IMHO最差的情况下替换不推荐使用的库时,可能会导致应
我最近发现是不推荐的。我们该怎么处理? 有什么替代方案吗?
问题内容: 我在java 6上。用于读取用户输入。不推荐使用readLine()的情况。读取用户价值的方法是什么? 请在不建议使用readLine()时进行解释。 问题答案: 从根本上说是二进制结构。如果要读取 文本 数据(例如从控制台),则应使用某种描述。要将转换为,请使用。然后在周围创建一个,您可以使用读取一行。 更多选择: 使用内置回合,然后致电 使用(从中获得)并致电