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

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

2、设置仓库地址和分支

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

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

case ${deploy_env} indeploy)echo -e "\033[34mAction:${deploy_env}\033[0m"echo -e "\033[34m开始进行maven打包:\033[0m"mvn -Dmaven.test.skip=true clean packageresult=$?[ ${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 targetcp -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-setuptoolsyum 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.confsupervisorctl -c /etc/supervisor/supervisord.conf reload // 加载配置,重新启动supervisordsupervisorctl 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++ ))
dohttp_code=`curl -I -m 10 -o /dev/null -s -w %{http_code} ${MONITOR_URL}`if [ $http_code -eq 200 ];thenecho -e "\033[32m${LOCAL_IP}节点程序${APP_NAME}项目发布成功\033[0m"exit 0fisleep 1
done
echo -e ”\033[31m${LOCAL_IP}节点程序${APP_NAME}项目发布失败\033[0m"
exit 1

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

Jenkins发布api jobs,利用supervisor管理运行相关推荐

  1. 淘宝/天猫开放平台新商品发布API接口,商品发布接口,店铺上传接口,利用淘宝新品发布商品接口进行上传商品至淘宝店铺,接口对接方案

    一.淘宝/天猫开放平台新商品发布API接口参数说明: 1.通过注册key和secret得到测试账号,然后给到淘宝应用市场的店铺授权购买,然后再平台上面进行店铺添加审核,审核通过后即可用请求链接上传商品 ...

  2. react调用api等待返回结果_React新Context API在前端状态管理的实践

    ### React新Context API在前端状态管理的实践 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较为繁琐不好管理,通常我们需要使用Redu ...

  3. 盘点 8 款好用的 API 接口文档管理工具

    随着互联网的普及和发展,API 接口已经无处不在.它已经在 Web 应用程序.移动应用程序.云计算.物联网.人工智能等领域中得到广泛应用. 例如,在金融行业中,API 接口可以被用于构建支付服务.银行 ...

  4. 美国国防高级研究计划局(DARPA)组织管理运行机制分析

    美国国防高级研究计划局(DARPA)组织管理运行机制分析 作者:李丹丹,苏鑫鑫   来源:<飞航导弹>  已有 802人浏览 放大  缩小 1957年10月,苏联第一颗人造卫星升空,美国意 ...

  5. 关于 Kubernetes中API Server授权(RBAC)管理的一些笔记

    写在前面 学习K8s涉及,整理笔记记忆 博文偏实战,内容涉及: k8s中API Server的授权策略简述 RBAC授权策略中涉及到的资源对象创建删除 Role ClusterRole RoleBin ...

  6. Jenkins 中基于角色的权限管理

    Jenkins 中基于角色的权限管理 原文地址: Jenkins 中基于角色的权限管理 | 超级小豆丁 (mydlq.club) 系统环境: Jenkins 版本:2.213 一.简介 Jenkins ...

  7. Eolink神技之二、API全生命周期管理

    Eolink神技之二.API全生命周期管理 目录 Eolink神技之二.API全生命周期管理 Eolink全API全生命周期管理解决的问题 演示过程 一.创建项目文档 1.1.创建项目 1.2.项目管 ...

  8. 国家互联网信息办公室发布《区块链信息服务管理规定》

    国家互联网信息办公室2019年1月10日发布<区块链信息服务管理规定>(以下简称"<规定>"),自2019年2月15日起施行. 国家互联网信息办公室有关负责 ...

  9. 使用 supervisor 管理进程

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

最新文章

  1. Linux之sed命令
  2. ubuntu权限管理
  3. ASP.NET实现微信功能(2)(服务号高级群发)
  4. idea运行项目报错Cannot run program “C:\Program Files\Java\jdk1.8.0_121\bin\java.exe......解决办法
  5. 【朋克智库】比特币详解2.0——比特币的沉沦
  6. 自定义泛型集合,接口
  7. ajax发送私信,$.ajax()方法详解
  8. python 状态模式_使用状态模式自由切换登录状态
  9. 荣耀V40屏幕素质得到“认证”:120Hz高刷屏没跑了
  10. python接收最新邮件_Python接收Gmail新邮件并发送到gtalk的方法
  11. 数据库51年来十八件大事年表
  12. Flash Player Control for ASP.NET
  13. 机器学习——KNN及代码实现
  14. 使用fastjson读取超巨json文件引起的GC问题
  15. 功率单位mw和dbm的换算总结
  16. Vue前端验证一个text只能输入手机号或邮箱
  17. XHR 和 Fetch 的使用详解和区别总结
  18. day8--socket回顾
  19. 【Greenplum走遍全国】济南技术研讨会
  20. 影视/动漫 短视频专栏来啦!

热门文章

  1. FIR滤波器,低通、高通、带通、带阻VC实现
  2. windows开启SMB
  3. 认证管理(锐捷交换篇)
  4. 【免费认证】Juniper免费认证指南
  5. 【我的渲染技术进阶之旅】基于Filament渲染引擎绘制一个不停旋转的彩色矩形
  6. 简述java异常机制处理,简述Java中异常处理的机制
  7. Java虚拟机讲解 与 搞垮Java虚拟机
  8. 用latex写IEEE论文投稿的踩坑笔记
  9. Rosalind第11题——ros_bio11_FIBD
  10. html背景图片不重叠铺满,css背景图片怎么铺满