我一直在寻找很多关于如何在命令行中安装服务的谷歌(所以没有手动交互),但我坚持如何获得jenkins-slave.exe
我找到了那些指令https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+as+a+Windows+service,但我不知道如何获得可执行文件。我已经下载并运行slave.jar与正确的关键,连接代理,但exe没有生成。
我发现这个页面https://github.com/kohsuke/winsw/blob/master/doc/installation.md#winsw-installation-guide手动安装它,但这听起来像重新发明了轮子时,jar可以做到这一点。加上有风险的WinSW.exe是不同的,并没有得到更新的插件(我看到一些自动更新代码在它)。
那么,有没有一种方法可以下载jenkins-slave.exe或生成它?或者有没有一种方法可以从slave.jar在命令行中运行“作为服务安装”?
4条答案
按热度按时间mrzz3bfm1#
为了回答我自己的问题,在联系了插件开发人员之后:
没有直接从Jenkins下载exe的实际方法,slave.jar通过远程协议从master获取它。我已经创建了一个请求,以便能够通过URL下载它(根据开发人员的建议),所以它可能在未来可用。
现在,可执行文件是一个重命名的Windows Service Wrapper二进制文件:https://github.com/kohsuke/winsw,所以我以同样的方式使用这个二进制文件。
关于WinSW和XML文件使用的配置,我使用了GitHub存储库https://github.com/jenkinsci/windows-slave-installer-module中的配置。版本在配置方面是兼容的。
所以基本上我下载exe,从Jenkins获取私钥,并使用原始插件的配置创建服务。然后我使用
jenkins-slave.exe install
安装服务。一步一步:
java -jar slave.jar -jnlpUrl http://jenkins...
slave.jar
文件(从JNLP命令获得)http://repo.jenkins-ci.org/public/com/sun/winsw/winsw/2.1.0/winsw-2.1.0-bin.exe
winsw-2.1.0-bin.exe
转换为jenkins-slave.exe
jenkins-slave.exe install
安装服务7dl7o3gd2#
我会做的是:
slave.jar
文件(从Jenkins的节点页面)java -jar slave.jar -jnlpUrl http://<YOUR URL HERE>
命令.bat
文件中并保存.bat
文件mpgws1up3#
或者,有没有一种方法可以在命令行中从slave.jar运行“Install as a service”?
我不使用
jenkins-slave.exe
,而是使用一个自定义脚本,在该脚本中,当使用密钥启动java -jar slave.jar
时,我可以控制要为Jenkins从节点设置的确切环境变量,您可以在Jenkins主节点页面中看到该新从节点的密钥。要将
slave.jar
从主服务器获取到从服务器,请从Windows从服务器执行:字符串
为了替换jenkins-slave.exe,我使用了一个声明为Windows服务的脚本,其中
nssm
该脚本类似于**
agent.bat
**:型
然后,该脚本将作为Windows服务调用,由专用用户帐户运行:
型
然后配置其Windows服务:
型
有关自动安装其他软件的信息:请参阅Chocolatey - Software Management Automation,Windows的软件包管理器。
要完全自动化slave的声明端,请使用Web API创建slave和一个groovy script to retrieve the Jenkins node/slave secret JnlpMac key。
请参阅this script for the creation。
以及groovy脚本(使用Jenkins 2.46或更新版本)来获取密钥:
型
knpiaxh14#
使用此Windows服务 Package 器也可以工作:https://github.com/winsw/winsw
遵循它们的安装,但您应该使用所需的配置更新xml,确保在xml中删除所有**"in路径,并在代理的jenkins主配置页面中禁用websockets**:
x1c 0d1x的数据
一步一步:下载exe:来自https://github.com/winsw/winsw/releases的WinSW-x64.exe在代理上创建工作区目录并将其粘贴到那里,将WinSW-x64.exe重命名为jenkins-slave.exe
复制你的jenkins-slave.xml,它应该看起来像:
字符串
使用选项延迟自动启动,以确保所有的网络服务启动,Jenkins连接不能失败.我建议使用注册表项给给予服务更多的时间来启动:插入注册表项给给予服务更多的时间来启动:
型
您可以在这里查看详细信息:https://serverfault.com/questions/622432/how-do-i-increase-windows-service-startup-timeout
最后,我建议每周至少自动启动一次你的Jenkins。
型
现在做(与管理员权限)
你的Jenkins将永远运行!
另一个建议:启用BIOS设置启动电脑开机。如果你有麻烦与电源中断。