如何通过winsw将 agent.jar 注册为Windows服务并配置账户
借助WinSW工具将agent.jar安装成Windows服务,将Jenkins Agent服务配置为我指定的账户,可支持开机自启,解决脚本执行权限问题
前言
目前部署jenkins之后,代理节点是通过直接运行 agent.jar 来连接jenkins主节点的。这是一种常见的手动启动方式,但它的缺点是无法开机自启、不方便管理账户,并且命令行窗口关闭后代理就中断了。
另外,在jenkins构建步骤中执行windows构建节点中的脚本时会因为权限不足而报错,所以需要将agent.jar 注册为windows服务,然后将Jenkins windows服务配置为我指定的账户(本地系统或管理员账户)运行。
可借助WinSW工具将它安装成Windows服务,具体操作步骤如下
一、下载 WinSW,一般下载 WinSW-x64.exe
地址:https://github.com/winsw/WinSW/releases
将下载的 .exe 文件重命名为一个简短的名字,例如 jenkins-agent.exe,并放与 agent.jar 相同的目录下
二、创建配置文件
在同一目录下,创建一个与 jenkins-agent.exe 同名的XML文件,即 jenkins-agent.xml。用文本编辑器打开它,填入以下配置。请重点注意 <service> 部分,这是配置账户的关键
<service>
<id>jenkins-agent</id>
<name>Jenkins Agent</name>
<description>该服务以Windows服务的形式运行Jenkins代理。</description>
<!-- 指定要运行的Jar包 -->
<executable>java</executable>
<arguments>-jar agent.jar -jnlpUrl YOUR_JENKINS_URL/YOUR_NODE_NAME/jenkins-agent.jnlp -secret YOUR_AGENT_SECRET -workDir YOUR_WORK_Dir</arguments>
<!-- ** 核心:配置服务登录账户 ** -->
<logmode>rotate</logmode>
<logpath>%BASE%\logs</logpath>
<!-- 方式A: 使用“本地系统账户”运行(默认,权限高) -->
<!-- 无需特别指定账户,默认即是LocalSystem -->
<!-- 方式B: 使用一个指定的“管理员账户”运行 -->
<!-- 取消下面三行注释,并填写你的账户信息 -->
<!--
<serviceaccount>
<domain>YOUR_COMPUTER_NAME</domain>
<user>YourAdminUsername</user>
<password>YourAdminPassword</password>
<allowservicelogon>true</allowselogin>
</serviceaccount>
-->
</service>
关键配置说明:
-
将
YOUR_JENKINS_URL、YOUR_NODE_NAME、YOUR_AGENT_SECRET、YOUR_WORK_Dir 替换为在Jenkins主服务器上创建节点时获得的真实信息 -
要使用“本地系统账户”:保持
<serviceaccount>部分被注释即可(如上所示) -
要使用“管理员账户”:请取消注释
<serviceaccount>部分,并填入正确的域/计算机名、用户名和密码
三、安装并启动服务
-
以管理员身份打开命令提示符(CMD)
-
切换到
agent.jar和jenkins-agent.exe所在的目录 -
依次执行以下命令
# 安装服务
.\jenkins-agent.exe install
# 启动服务
.\jenkins-agent.exe start
# 检查服务状态
.\jenkins-agent.exe status
四、查找Jenkins windows服务配置并配置账户
安装成功后,按住 win+R,输入 services.msc,回车,就可以找到名为 “Jenkins Agent” 的服务了,以后要配置账户,可以直接在这里右键进入“属性” -> “登录”选项卡进行修改,就像管理普通服务一样

注意:非管理员账户可能无法看到system或其他用户安装的服务,此时需要使用管理员身份运行命令行提示符
更多推荐
所有评论(0)