如何设置Jenkins从运行作为一个窗口服务使用命令行?

2q5ifsrm  于 2023-03-17  发布在  Jenkins
关注(0)|答案(5)|浏览(132)

我想使用命令行创建一个jenkins从。这是一个document关于设置jenkins从作为一个windows服务,我按照那里的指示。我可以运行javaws http://10.121.33.4:8080/computer/Test-Jenkins-Slave-2/slave-agent.jnlp连接从到主,但这个问题是它会断开后,机器重新启动。
我认为最好的方法是将slave安装为服务。因此,我尝试再次按照该页面上的说明进行操作。我将jenkins Slave安装为服务,并添加注册表项,如下所示。

服务属性:

注册表值:

我想知道我是否做错了什么?这份文件是不是漏了什么?

im9ewurl

im9ewurl1#

(Last 2019-09-20)我发现安装Jenkins工作器/从机作为服务的最快、最可靠的方法是:
1.从Jenkins的“/slave-agent.jnlp”端点下载jnlp文件
1.调出“从代理”GUI
1.从GUI中选择“作为服务安装”选项

详细步骤和图片如下。

注意:不要费心修改注册表,嵌入式安装使这个过程快速、简单和可重复。
假设您已经配置了一个名为“amberboch”的节点,在工作/从(即“amberboch”)机器上:

1.打开一个浏览器,输入新节点的Jenkins URL(或单击Jenkins“Nodes”页面中的节点),然后像往常一样在Jenkins中创建节点。
1.创建节点后,导航到该节点(Jenkins〉Nodes〉amberboch)并在浏览器URL的末尾包含“/slave-agent.jnlp”(例如“http://jenkins:8080/computer/computer/amberboch**/slave-agent. jnlp**”)以下载jnlp文件。

x 1c 2d 1x
1.使用 * 管理员权限 * 执行slave-agent.jnlp文件。(您可能指定了Java/javaws,以便使用“Java(TM)Web Start Launcher”启动它)(或者,您可以使用JENKINS-29616中的格式(由Pau Sabats证明)创建新的代理jar,该jar应保留连接信息:java -jar新代理. jar-jnlpUrl网址http://Jenkins:8080/computer/amberboch/slave-agent. jnlp-机密信息xxxxxxxx -工作目录“E:\Jenkins客户端”
1.从slave-agent.jnlp GUI中选择“文件”=〉“作为服务安装”选项
安装服务后,根据需要更改服务的“登录”凭据以进行特定安装。如果在管理员模式下运行时,某个作业碰巧运行并因此创建了工作区子文件夹,则您可能必须重置权限或删除工作区中的目录(就像以前 * 具有管理员权限 * 的用户所运行的任何作业一样,并且常规Jenkins用户简档可能不具有对旧工作空间文件夹和文件的适当许可。
我希望这有助于保存您的时间和头痛的管理(恕我直言)最好的CI选项,我遇到的。
最好的问候,罗布
PS -我发现了另一个可能也有帮助的讨论:Install Jenkins slave as a Windows service in command line

u5i3ibmn

u5i3ibmn2#

我已经采取了

  • jenkins.exe
  • jenkins.exe.config
  • jenkins.xml

从Jenkins 'master'安装。接下来我修改了XML来包含我的slave的启动参数。这给出了类似于:

<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服务,在从服务器上运行管理shell:

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

这在原理上与启动Jenkins主服务相同。

8gsdolmq

8gsdolmq3#

可能需要在系统启动后显式启动服务。您可能需要:
1.转到“登录”选项卡,并以具有计算机管理权限的用户身份启动服务

1.按照以下说明通过Windows计划程序启动jenkins代理:https://wiki.jenkins-ci.org/display/JENKINS/Launch+Java+Web+Start+slave+agent+via+Windows+Scheduler

ubof19bj

ubof19bj4#

将Jenkins节点(从节点)设置为服务的最简单方法是使用https://nssm.cc/
1.将nssm解压缩到C:\驱动器
1.运行命令-〉C:\nssm-2.24\win54>nssm install "JenkinsAgent"
1.在弹出窗口中,您可以给予Jenkins中提供的startagent.bat的路径
您还可以配置要用于运行Jenkins作业的用户。

wb1gzix0

wb1gzix05#

虽然其他答案是有效的,但如果您像我一样,希望获得与JavaWebstart去世前(Oracle成为邪恶帝国时)完全相同的代理体验,并且您不能再启动JNLP文件......它在这里......
Java代理(从属)gui允许您将代理配置为Windows服务,它通过一个名为WinSW(https://github.com/winsw/winsw)的开源包来完成此操作。
您所要做的就是将此工具与Jenkins控制台在节点配置屏幕中提供的启动指令结合使用。虽然奇怪的是Jenkins的用户指南中没有,但Cloudbees确实在这里做了一个关于它的知识库:https://docs.cloudbees.com/docs/cloudbees-ci-kb/latest/client-and-managed-masters/how-to-install-windows-agents-as-a-service
净网是这样的:

  • 确保OpenJDK 17已安装并位于系统路径中,以便“java”可在任何目录中工作
  • 创建代理文件夹
  • 将Agent.jar的副本下载到Jenkins服务器的文件夹中(请参见节点配置屏幕中的URL)
  • 获取WinSW-x64.exe的副本,并将其放在以下文件夹中:https://github.com/winsw/winsw
  • 从WinSW存储库中的模板文件创建自己的WinSW-x64.xml,并填写各种信息,如服务名称等...
  • 运行WinSW-x64.exe安装(注意:您也可以运行UNINSTALL)

如果你从旧的java gui看一个Windows服务安装,你会看到他们做了一个jenkins-slave.exe,那就是WinSW-x64.exe,事实上你可以简单地重命名WinSW-x64.exe,但是如果你这样做的话,.xml文件必须匹配安装命令才能工作。
干杯!

相关问题