前言

目前部署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_URLYOUR_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或其他用户安装的服务,此时需要使用管理员身份运行命令行提示符

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐