[英]How to setup Jenkins Slave to run as a windows service using command line?
我想使用命令行创建一个詹金斯奴隶。 这是关于将 jenkins slave 设置为 Windows 服务的文档,我按照那里的说明进行操作。 我可以运行javaws http://10.121.33.4:8080/computer/Test-Jenkins-Slave-2/slave-agent.jnlp
来将slave连接到master,但问题是它会在机器重启后断开连接。
我认为最好的方法是将奴隶安装为服务。 因此,我尝试再次按照该页面上的说明进行操作。 我已将 jenkins Slave 作为服务安装,并添加了如下所示的注册表项。
服务属性:
注册表值:
我想知道我是否做错了什么? 文件是否遗漏了什么?
(最后 2019-09-20)我发现安装 Jenkins Worker/Slave 作为服务的最快和最可靠的方法是:
详细步骤和图片如下。
注意:不要费心修改注册表,嵌入式安装使该过程快速、简单且可重复。
因此,假设您已经配置了一个名为“amberboch”的节点。 在工人/奴隶(即“amberboch”)机器上:
安装服务后,根据特定安装的需要更改服务的“登录”凭据。 如果在管理员模式下运行时碰巧运行了一个作业并因此创建了一个工作空间子文件夹(因为任何已运行的作业都会这样做),您可能必须重置权限或删除工作空间内的目录前管理员特权用户和常规 Jenkins 用户配置文件可能没有对旧工作区文件夹和文件的适当权限。
我希望这有助于节省您管理(恕我直言)我遇到的最佳 CI 选项的时间和麻烦。
最好的问候,罗伯
PS - 我发现另一个可能也有帮助的讨论: Install Jenkins slave as a Windows service in command line
我采取了
来自 Jenkins 的“主”安装。 接下来,我调整了 XML 以包含我的从站的启动参数。 这给出了类似的东西:
<executable>%JAVA_HOME%\bin\java.exe</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "C:\Tools\jenkins_slave\slave_95\agent.jar" -jnlpUrl http://jenkins_master:9090/computer/slave_95/slave-agent.jnlp -secret 999999999999999999999999999999999999999999 -workDir "C:\jenkins_slaves_workdir"</arguments>
在 XML 中,我还: - 根据我的偏好编辑了 id、name、description 字段 - 删除了“扩展”块的内容
之后,我可以使用以下命令在从属设备上启动运行管理 shell 的 Windows 服务:
sc create <service_name> binpath= "C:\Tools\jenkins_slave\slave_95\Jenkins.exe" start= auto
这在原则上与启动 Jenkins 主服务相同。
服务可能需要在系统启动后显式启动。 您可能需要:
或者
将 Jenkins 节点(从节点)设置为服务的最简单方法是使用https://nssm.cc/
C:\
驱动器C:\nssm-2.24\win54>nssm install "JenkinsAgent"
startagent.bat
的路径您还可以配置要用于运行 jenkins 作业的用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.