首页 / 知识
Jenkins发布接口jobs,利用supervisor管理运行
2023-04-11 16:18:00

利用Jenkins可以自动打包接口代码生成jar包推送到目标服务器,然后通过服务器supervisor进行管理启动,自动拉起
1、设置发版操作页,选择deploy发版或者rollback回滚
2、设置仓库地址和分支
3、设置环境变量方便下面脚本引用
4、执行shell构建,包含mvn打包,和备份jar包方便回滚
case ${deploy_env} in
deploy)
echo -e "\033[34mAction:${deploy_env}\033[0m"
echo -e "\033[34m开始进行maven打包:\033[0m"
mvn -Dmaven.test.skip=true clean package
result=$?
[ ${result} -eq 0 ] && echo -e "\033[32mmaven打包成功。\033[0m" || {
echo -e "\033[31mmaven打包失败。\033[0m"
exit ${result}
}
;;
rollback)
[ ${version} -eq 0 ] && {
echo -e "\033[31m版本号非0。\033[0m"
exit 1
} || echo -e "\033[34mAction:${deploy_env}\033[0m"
echo -e "\033[34mRollback version:${version}\033[0m"
rm -rf target
cp -Rv ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${version}/archive/target .
[ $? -eq 0 ] && echo -e "\033[32m指定版本号${version}的target目录复制到当前部署目录成功。\033[0m" || {
echo -e "\033[31m指定版本号${version}的target目录复制到当前部署目录失败。\033[0m"
exit 1
}
;;
*)
exit 1
;;
esac
5、首先在服务器安装supervisor
yum install python-setuptools
yum clean all
yum makecache
yum install python-pip
pip install supervisor
###创建supervisor配置文件目录/etc/supervisor/
mkdir -m 755 -p /etc/supervisor/
####创建主配文件supervisord.conf
echo_supervisord_conf > /etc/supervisor/supervisord.conf
#####把supervisors.conf中的最后两行修改一下:
;[include]
;files = relative/directory/*.ini ;定义管理监控程序的配置文件的路径
修改为:
[include]
files = /etc/supervisor/conf.d/*.conf
#################
启动supervisord及supervisorctl一些常用命令:
supervisord -c /etc/supervisor/supervisord.conf
supervisorctl -c /etc/supervisor/supervisord.conf reload // 加载配置,重新启动supervisord
supervisorctl start all //启动所有进程
supervisorctl start redis //启动某一个进程
supervisorctl stop all //停止所有进程
supervisorctl stop redis //停止某一个进程
---------------------
6、配置supervisor启动文件
注:/App/java_app/下面会统一放我们项目目录,启动用户可以自定义root也可以
cd /etc/supervisor进去supervisor目录下创建项目启动文件
vim cityhouse.ini
创建完一定要记得update一下,supervisor update cityhouse
[program:cityhouse]
;启动用户
user=work
;程序启动命令
command=/usr/local/jdk-1.8/bin/java -jar -Xmx512m -Xms512m -Dspring.profiles.active=test cityhouse.jar
numprocs=1
;程序启动目录
directory=/App/java_app/cityhouse
;在supervisord启动时自启动
autostart=true
;程序异常退出后自动重启,可选值:[unexpected,true,false],默认为unexpected
autorestart=true
;启动10秒后没有异常退出,就表示进程正常启动了
startsecs=10
;启动失败自动重试次数
startretries=3
7、到Jenkins配置jar远程推送设置
source /etc/profile
IN_FACE=——/sbin/route -n |awk '{if($4——/UG/){print $8}}'|head -n 1——
LOCAL_IP=——/sbin/ip addr show "${IN_FACE}" | grep -w 'inet' | awk '{print $2}'——
#####jar包推送完重启项目
sudo supervisorctl restart ${APP_NAME}
###利用url监控看下项目是否正常启动
timeout=180
echo -e "\033[34m测试程序部署是否正确\033[0m"
for (( i=1;i<=$timeout;i++ ))
do
http_code=——curl -I -m 10 -o /dev/null -s -w %{http_code} ${MONITOR_URL}——
if [ $http_code -eq 200 ];then
echo -e "\033[32m${LOCAL_IP}节点程序${APP_NAME}项目发布成功\033[0m"
exit 0
fi
sleep 1
done
echo -e ”\033[31m${LOCAL_IP}节点程序${APP_NAME}项目发布失败\033[0m"
exit 1
8、设置项目发版完邮件通知
|
最新内容
相关内容
python操作系统接口模块:OS
python操作系统接口模块:OS,管理,工作,工具,系统,服务,培训,模块,文件,目录,函数,OS模块提供了很多与操作系统进行交互的函数,比如常见的使用函Python上下文管理器
Python上下文管理器,包装,通用,代码,培训,函数,示例,上下文,语法,抑制,文件,本节严格意义上并非新的重定向方式,而是利用Pyhton上下文管理器优python 抽象类和抽象接口
python 抽象类和抽象接口,概念,基础,设计,培训,数据,接口,方法,相似性,属性,函数,抽象类的本质还是类,指的是一组类的相似性,包括数据属性(如al怎么计算python程序运行时间
怎么计算python程序运行时间,时间,培训,程序,方式,脚本,下面,以上,两个,结束,不是,python脚本使用统计时间的方式是time.clock(),而这种方式统如何利用python快速生成大文件
如何利用python快速生成大文件,位置,单位,数据,培训,文件,代表,方法,语法,参数,测试,python快速生成大文件的方法:先使用seek函数为打开的文件Python怎么运行shell脚本
Python怎么运行shell脚本,培训,命令,文件,方法,脚本,文件夹,对象,建议,结果,内容,Python作为一门脚本语言,有时候需要与shell命令交互式使用,在python怎么清空管理空间
python怎么清空管理空间,情况,管理,名称,培训,对象,赋值,别名,内存,变量,语句,关于Python中的内存释放问题首先就不得不提到Python解释器在何Mac终端下直接运行Python的.py程序
Mac终端下直接运行Python的.py程序,位置,培训,终端,文件,注释,权限,继续,程序,空格,文件名,1.在文件中添加注释首先在你所要运行的python文件python代码运行需要编译吗
python代码运行需要编译吗,代码,培训,做好,体系,平台,语言,机器码,目标,厨师,下次,有人在讨论Python代码是编译执行还是解释执行?这个问题还如何获取当前运行python文件路径
如何获取当前运行python文件路径,名字,培训,路径,脚本,绝对路径,文件,指令,模块,定义,所在,获取当前执行主脚本方法:sys.argv[0]和_file_(1)sypython如何在linux下运行python
python如何在linux下运行python,培训,绝对路径,文件,程序,这个地方,头部,文本,上面,以上,时候,Linux下运行python有两种方式:1、直接使用pythopython怎么在cmd运行文件夹
python怎么在cmd运行文件夹,培训,路径,文件夹,文件,以上,程序,方法,更多,内容,python是一门高级测面向对象的程序设计语言。运行Python,可在