Windows下将 jenkins 代理注册为服务【WinSW】

本文介绍了如何使用WinSW工具将Jenkins主控端war包和代理端agent.jar打包为Windows服务,包括下载、重命名、配置XML文件,以及编写启动和服务管理脚本,以实现自动化服务注册和控制。
摘要由CSDN通过智能技术生成

环境

操作系统:windows 10 

jenkins版本:2.36.1

技术栈

jenkins +WinSW+bat批处理,因为jenkins agent 使用的java技术,同理此方案可用于将jenkins 主控jar注册为服务,也可以用在其他java或exe服务注册上。

WinSW Github地址:https://github.com/winsw/winsw

WinSW Gieee地址:https://gitee.com/zhoudike/winsw.git

实现步骤

步骤一:下载release版本winsw

下载链接:https://github.com/winsw/winsw/releases

步骤二:重命名exe,并创建xml文件

将下载好的WinSW-x64.exe,重命名为agent.exe,并在同级目录创建xml文件

xml文件示例如下:

xml文件可参考WinSW官方仓库给出的例子:

https://github.com/winsw/winsw#sample-configuration-file

jenkin主控端war包注册为服务:

<?xml version="1.0" encoding="UTF-8" ?>
<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins continuous integration system.</description>
  <env name="JENKINS_HOME" value="%BASE%"/>
  <executable>java</executable>
  <arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
  <log mode="roll"></log>
</service>

 jenkin 代理端agent.jar包注册为服务:

<?xml version="1.0" encoding="UTF-8" ?>
<service>
  <!-- 该服务的唯一标识 -->
  <id>jenkins-agent</id>
  <!-- 注册为系统服务的名称 -->
  <name>jenkins-agent</name>
  <!-- 对服务的描述 -->
  <description>jenkins node从节点</description>
  <!-- 将java程序添加到系统服务 -->
  <executable>start.bat</executable>
  <!-- 执行的参数 -->
  <!-- 日志模式 这种是exe帮忙收集产生的日志配置,如果jar自带了log的话,也会输出 -->
   <!--<logpath>\logs</logpath>-->
   <log mode="roll-by-size">
        <!-- 归档文件大小,单位是KB -->
       <sizeThreshold>3</sizeThreshold>
       <keepFiles>8</keepFiles>
   </log>-->
<!-- 日志模式 这种是exe不用帮忙收集产生的日志配置 因为jar自带了log输出那一套 -->
   <log mode="none"></log>
</service> 

步骤三:copy jar文件至agent.exe 同级目录

 

步骤四:编写jenkins 代理启动脚本

首先判断jar包文件是否存在,如不存在下载jar文件,再执行java启动命令。

注意:需要将http链接替换为你自己jenkins的URL,secret 替换成添加代理时的密钥

chcp 65001
@echo off
set path=%JAVA_HOME%;%path%;
rem 判断当前目录agent.jar是否存在,如不存在下载至当前目录
if not exist "%cd%\agent.jar" ( curl.exe -sO "http://192.168.1.108:8080/jnlpJars/agent.jar")
java -jar agent.jar -jnlpUrl http://192.168.1.108:8080/computer/pub/jenkins-agent.jnlp -secret f88fa9e15b32665b8c71bbcee3676a612e8ea7fd871d6642157cd8a5708f0718 -workDir "D:/jenkins"

 步骤五:编写服务管理工具脚本

chcp 65001
@echo off 
Title Jenkins                                              
Color 0A   
:caozuo  
echo. 
echo ******************************************
echo 【Jenkins 服务操作】    
echo    1.安装服务  
echo    2.卸载服务    
echo    3.停止服务 
echo    4.启动服务    
echo    5.重启服务
echo    6.刷新服务
echo    7.查看服务
echo    0.退出
echo ******************************************
echo.
set /p n=输入操作号: 
if "%n%"=="" cls&goto :caozuo 
if "%n%"=="1" call :1 
if "%n%"=="2" call :2 
if "%n%"=="3" call :3 
if "%n%"=="4" call :4 
if "%n%"=="5" call :5
if "%n%"=="6" call :6
if "%n%"=="7" call :7
if "%n%"=="0" exit
pause 
goto :eof 

:1 
echo 安装服务 
cd /d "%~dp0"
agent.exe install
goto :caozuo 

:2 
echo 卸载服务
cd /d "%~dp0"
agent.exe uninstall
goto :caozuo 

:3 
echo 停止服务 
cd /d "%~dp0"
agent.exe stop
echo 服务状态
call :7
goto :caozuo 

:4
echo 启动服务
cd /d "%~dp0"
agent.exe start 
echo 服务状态
call :7
goto :caozuo

:5 
echo 重启服务 
cd /d "%~dp0"
agent.exe restart
echo 服务状态
call :7
goto :caozuo

:6 
echo 刷新服务
cd /d "%~dp0"
agent.exe refresh
echo 服务状态
call :7
goto :caozuo

:7 
echo 查看服务状态
cd /d "%~dp0"
agent.exe status 
goto :caozuo

步骤六:执行管理工具脚本,安装服务,再启动服务

注意:安装完服务后不会自启,需要执行启动操作才可启动

完整示例

Gitee仓库:https://gitee.com/fenglanyi/jenkins_reg_service.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值