Jenkins + Gitee搭建(war包模式)
本文主要记录Jenkins和Gitee组合进行服务发布的安装配置及相关问题,不包含JDK等的安装配置。
jenkins包下载
-
jenkins中文地址
https://www.jenkins.io/zh/
-
war包下载地址
https://mirrors.jenkins.io/war-stable/
在jenkins官网首页选择"文档",选择"安装Jenkins",移动至"WAR文件"即可看到war包下载地址,https://mirrors.jenkins.io/下有各种安装包
启动Jenkins
-
启动脚本
#!/bin/bash echo 'Start the program : jenkins.war' echo ${JAVA_HOME} echo '-------Starting-------' nohup /usr/local/java/bin/java -Dhudson.util.ProcessTree.disable=true -Xms1024m -Xmx1024m -jar /root/jenkins.war --httpPort=9810 > /root/jenkins.log 2>&1 & echo 'start success'
-Dhudson.util.ProcessTree.disable=true
设置禁止jenkins杀死衍生进程--httpPort=9810
设置启动端口- 启动日志中会输出初始密码及其存储位置
-
停止脚本
#!/bin/bash echo "Stop Procedure : jenkins.war" pid=`ps -ef |grep -v grep | grep jenkins.war | awk '{print $2}'` echo 'old Procedure pid:'$pid if [ -n "$pid" ] then kill -9 $pid fi
配置插件
-
浏览器访问jenkins
-
输入初始密码
-
插件安装可自选或推荐(默认推荐即可)
-
设置管理账户,然后重启Jenkins
-
系统管理中选择插件管理,安装Maven和Gitee插件(Maven Integration plugin & Gitee Plugin)
配置全局工具
-
系统管理中选择全局工具配置,配置Manen、Git、Jdk安装路径(需先在Jenkins服务器安装Maven、Git、Jdk)
创建构建任务
新建任务配置
输入任务名称,同工作目录名,选择"自由风格"
源码管理配置
配置Gitee地址和访问凭证(支持账户和令牌方式)
构建配置
配置构建命令和执行脚本等
相关脚本
-
api_stop.sh
echo "Stop Procedure : fancywalkman.jar" pid=`ps -ef |grep -v grep | grep fancywalkman.jar | awk '{print $2}'` echo 'old Procedure pid:'$pid if [ -n "$pid" ] then kill -9 $pid fi
-
api_start.sh
#!/bin/bash echo 'Backup the old package!' mv /usr/local/fancywalkman.jar /usr/local/backup/fancywalkman-$(date "+%Y%m%d%H%M%S").jar echo 'Start the program : fancywalkman.jar' echo ${JAVA_HOME} cp -rf /root/.jenkins/workspace/fancywalkman_api/dwstock-web/target/dwstock-web-2.3.jar /usr/local/fancywalkman.jar echo '-------Starting-------' nohup /usr/local/java/bin/java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar -Dspring.profiles.active=prod /usr/local/fancywalkman.jar > /usr/local/fancywalkmanConsoleMsg.log 2>&1 & echo 'start success'
其他说明
-
本次为jenkins与应服务在同一服务器上操作,jenkins与应用服务器分离方式的部署需要SSH相关插件和远程服务器配置
-
关于构建项目成功后服务并未正常启动的问题,分一下两种情况:
- jenkins默认会在构建完成后杀死构建过程中由jenkins中的shell命令触发的衍生进程,即构建完后启动的应用进程会被自动干掉
- jenkins中命令不识别(如
nohup java -jar
中java无法识别等情况 )
解决办法:
-
第一种:
-
将jenkins和业务服务器分开,这样jenkins即使杀死衍生进程也只会是自己服务器的,而不会影响业务服务器
-
修改jenkins配置,禁止其杀死衍生进程,war包配置
-Dhudson.util.ProcessTree.disable=true
,相关官方说明: -
修改shell脚本,重置BUILD_ID,使jenkins找不到衍生进程
# 加在"构建"命令的最上方 BUILD_ID=DONTKILLME mvn clean package -Dmaven.test.skip=true -Pprod
-
-
第二种:
-
在脚本刷新变量或输出环境变量
-
使用命令的绝对路径
-
评论区