linux jenkins部署脚本,使用Jenkins 自动部署发布

使用Jenkins自动部署发布,继Jenkins部署篇后,

#注意:jenkins路径会有差异,不用在意这个,同一个版本部署2次,发现了2个不同的目录结构,很诧异。

jenkins build玩war包的存放目录:/data/jenkins/workspace/simple/target

自动发布的脚本存放路径:/data/jenkins/jobs/simple

b23490b47841a2c4dc37a5096004e0f7.png

脚本的内容:

脚本使用的是scp命令,当然也可以使用wget等。

[root@localhost simple]# cat deploy_prod.sh

#!/bin/bash

back_time=`date +"%Y-%m-%d-%H-%M-%S"`#备份的时间

all_ip=192.168.121.135

for_ip=`awk 'BEGIN{iplist="'$all_ip'";split(iplist,ip,",");for (s in ip) {print ip[s]}}'`  #awk数组转换

for dest_ip in ${for_ip[*]};do

echo $dest_ip

done

src=/data/jenkins/workspace/simple/target#下面就是重启scp的过程

war_name="SimpleWeb-1.0.1-SNAPSHOT"

function stop_tomcat () {

Tomcat_id=`ssh $dest_ip lsof -i:8080 | awk 'NR==2''{print $2}'`

if [ ! Tomcat_id  ];then

echo "tomcat id 不存在"

else

ssh $dest_ip "/bin/kill -9 $Tomcat_id"

fi

}

function start_tomcat () {

ssh $dest_ip "cd /data/tomcat/bin && /bin/sh startup.sh"

}

if [ -f $src/${war_name}.war ];then

stop_tomcat

ssh $dest_ip "cd /data/tomcat/webapps && cp ${war_name}.war{,-${back_time}};cd /data/tomcat/webapps && /bin/rm -rf ${war_name}.war"

ssh $dest_ip "cd /data/tomcat/webapps && /bin/rm -rf ${war_name}"

scp $src/${war_name}.war $dest_ip:/data/tomcat/webapps

start_tomcat

fi

数组转换防止出现多ip发布:

[root@localhost simple]# all_ip=192.168.121.131,192.168.121.135

[root@localhost simple]# awk 'BEGIN{iplist="'$all_ip'";split(iplist,ip,",");for (s in ip) {print ip[s]}}'

192.168.121.131

192.168.121.135

效果如下图:

97a2bc4ead0cb557bcf166abc936295d.png

添加构建的执行脚本(注意不是在构建完执行的那块加):

7f61c06fca5cc3282c62d02d769bd326.png

运行job,build完后会执行deploy脚本:

68b3162c53c1296f485c0e62c3fc8b68.png

查看远程的tomcat是否发布完成:

78844e150ef81f5e5acda942821ea285.png

当然一般也不会直接在一个工程下面直接加发布脚本,工程要是build不成功呢,或是这次build有问题,有人一直build的呢,会不会一直执行这个发布,同城都是再建一个视图,这个权限只有某些人有,build完后再执行这个deploy  job 做发布,加一个视图,再加一个自由构建风格的job(pool很多的话可以加多个)做脚本运行发布的job。

首先copy一个视图:

86d5a9490db86a50b8e395d5b6aee5aa.png

配置脚本路径,只做脚本发布:

578a08907eea227a2c4e426509372d28.png

再次运行发布,会直接发布现在jenkins target目录下现存的war包,发布完的效果:

ec69c6d6df90a5edc09ef2364d35efea.png

未完待续,后续看看能不能和一些工具结合发布....

Jenkins 的详细介绍:请点这里

Jenkins 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值