繁体   English   中英

如何使用命令行将 Jenkins Slave 设置为作为 Windows 服务运行?

[英]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 作为服务的最快和最可靠的方法是:

  1. 从 Jenkins 的“/slave-agent.jnlp”端点下载 jnlp 文件
  2. 调出“从代理”GUI
  3. 从 GUI 中选择“作为服务安装”选项

详细步骤和图片如下。

注意:不要费心修改注册表,嵌入式安装使该过程快速、简单且可重复。

因此,假设您已经配置了一个名为“amberboch”的节点。 在工人/奴隶(即“amberboch”)机器上:

  1. 打开浏览器并输入新节点的 Jenkins URL(或单击 Jenkins 的“节点”页面中的节点),然后像往常一样在 Jenkins 中创建节点。
  2. 创建节点后,导航到节点(Jenkins > Nodes > amberboch)并在浏览器 URL 的末尾包含“/slave-agent.jnlp”(例如“http://jenkins:8080/computer/computer/amberboch” **/slave-agent.jnlp**") 下载 jnlp 文件。 注意“slave-agent.jnlp”是手动添加的 保存文件
  3. 管理员权限执行 slave-agent.jnlp 文件。 (您可能已指定 Java/javaws 以使用“Java(TM) Web Start Launcher”启动它)(或者,您可以使用 Pau Sabats 证明的 JENKINS-29616 中找到的格式来创建一个新的代理 jar,它应该保留连接信息: java -jar newAgent.jar -jnlpUrl http://jenkins:8080/computer/amberboch/slave-agent.jnlp -secret xxxxxxxx -workDir "E:\JenkinsClient" )
  4. 从 slave-agent.jnlp GUI 中选择“文件”=>“作为服务安装”选项

安装服务后,根据特定安装的需要更改服务的“登录”凭据 如果在管理员模式下运行时碰巧运行了一个作业并因此创建了一个工作空间子文件夹(因为任何已运行的作业都会这样做),您可能必须重置权限或删除工作空间内的目录前管理员特权用户和常规 Jenkins 用户配置文件可能没有对旧工作区文件夹和文件的适当权限。

我希望这有助于节省您管理(恕我直言)我遇到的最佳 CI 选项的时间和麻烦。

最好的问候,罗伯

PS - 我发现另一个可能也有帮助的讨论: Install Jenkins slave as a Windows service in command line

我采取了

  • 詹金斯程序
  • 詹金斯.exe.config
  • 詹金斯.xml

来自 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 主服务相同。

服务可能需要在系统启动后显式启动。 您可能需要:

  1. 转到“登录”选项卡并以具有计算机管理权限的用户身份启动服务

或者

  1. 通过此处的说明通过 windows 调度程序启动 jenkins 代理: https ://wiki.jenkins-ci.org/display/JENKINS/Launch+Java+Web+Start+slave+agent+via+Windows+Scheduler

将 Jenkins 节点(从节点)设置为服务的最简单方法是使用https://nssm.cc/

  1. 解压nssm到C:\驱动器
  2. 运行命令 -> C:\nssm-2.24\win54>nssm install "JenkinsAgent"
  3. 在弹出窗口中,您可以提供 Jenkins 中可用的startagent.bat的路径

您还可以配置要用于运行 jenkins 作业的用户。

截屏

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM