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

时间:2014-06-17 03:51:26

标签: jenkins windows-services continuous-integration registry

我想使用命令行创建一个jenkins slave。关于将jenkins slave设置为windows服务是document,我按照那里的指令进行操作。我可以运行javaws http://10.121.33.4:8080/computer/Test-Jenkins-Slave-2/slave-agent.jnlp将slave连接到master,但问题是它会在重启机器后断开连接。

我认为最好的方法是将slave作为服务安装。所以,我试图在该页面上再次遵循该指令。我将jenkins Slave作为服务安装,并添加了如下所示的注册表项。

服务的财产:
enter image description here

注册表值
enter image description here enter image description here

我想知道我做错了什么吗?该文件缺少什么?

3 个答案:

答案 0 :(得分:13)

我发现将Jenkins Worker / Slave作为服务安装的最快,最可靠的方法是使用" /slave-agent.jnlp"端点下载jnlp文件,运行它,然后" File" => "作为服务安装" GUI的选项。

不用担心修改注册表,嵌入式安装使这个过程变得快速,简单和可重复。

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

  1. 打开浏览器并输入新节点的Jenkins URL,并包含" /slave-agent.jnlp"在它的最后(例如" http://jenkins:8080/computer/computer/ledzeppelin/slave-agent.jnlp")下载jnlp文件。
  2. 使用管理员权限执行slave-agent.jnlp文件。 (您可能已经指定了Java / javaws来启动它" Java(TM)Web Start Launcher")
  3. 选择"文件" => "作为服务安装"来自slave-agent.jnlp GUI的选项
  4. 安装服务后,请更改服务"登录"您的特定安装所需的凭据。如果在管理员模式下运行时,您可能必须重置权限或删除工作区中的目录,以便正好运行作业,从而创建工作空间子文件夹。

答案 1 :(得分:0)

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

  1. 转到“登录”标签,以具有计算机管理权限的用户身份启动服务
    1. 通过Windows调度程序通过以下说明启动jenkins代理:https://wiki.jenkins-ci.org/display/JENKINS/Launch+Java+Web+Start+slave+agent+via+Windows+Scheduler

答案 2 :(得分:0)

我接受了

  • jenkins.exe
  • jenkins.exe.config
  • jenkins.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,名称,说明的字段  -删除了“扩展”块的内容

之后,我可以使用以下命令启动在从属服务器上运行管理外壳程序的Windows服务:

sc create <service_name> binpath= "C:\Tools\jenkins_slave\slave_95\Jenkins.exe" start= auto

从原则上讲,这与启动Jenkins主服务相同。