栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jenkins发布接口jobs,利用supervisor管理运行

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jenkins发布接口jobs,利用supervisor管理运行

利用Jenkins可以自动打包接口代码生成jar包推送到目标服务器,然后通过服务器supervisor进行管理启动,自动拉起

 

1、设置发版操作页,选择deploy发版或者rollback回滚

2、设置仓库地址和分支

 

3、设置环境变量方便下面脚本引用

 4、执行shell构建,包含mvn打包,和备份jar包方便回滚

case ${deploy_env} in
	deploy)
		echo -e "33[34mAction:${deploy_env}33[0m"
		echo -e "33[34m开始进行maven打包:33[0m"
        mvn -Dmaven.test.skip=true clean package
		result=$?
		[ ${result} -eq 0 ] && echo -e "33[32mmaven打包成功。33[0m" || {
			echo -e "33[31mmaven打包失败。33[0m"
			exit ${result}
		}
		;;
	rollback)
		[ ${version} -eq 0 ] && {
        	echo -e "33[31m版本号非0。33[0m"
            exit 1
            } || echo -e "33[34mAction:${deploy_env}33[0m"
		echo -e "33[34mRollback version:${version}33[0m"
		rm -rf target
		cp -Rv ${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${version}/archive/target .
		[ $? -eq 0 ] && echo -e "33[32m指定版本号${version}的target目录复制到当前部署目录成功。33[0m" || {
			echo -e "33[31m指定版本号${version}的target目录复制到当前部署目录失败。33[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 "33[34m测试程序部署是否正确33[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 "33[32m${LOCAL_IP}节点程序${APP_NAME}项目发布成功33[0m"
       exit 0
    fi
    sleep 1
done
echo -e ”33[31m${LOCAL_IP}节点程序${APP_NAME}项目发布失败33[0m"
exit 1

 8、设置项目发办完邮件通知

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572887.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号