使用Jenkins 自动部署发布

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

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

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

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

脚本的内容:

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

[[email protected] 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发布:

[[email protected] simple]# all_ip=192.168.121.131,192.168.121.135
[[email protected] simple]# awk ‘BEGIN{iplist="‘$all_ip‘";split(iplist,ip,",");for (s in ip) {print ip[s]}}‘
192.168.121.131
192.168.121.135

效果如下图:

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

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

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

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

首先copy一个视图:

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

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

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

时间: 2024-10-29 19:05:39

使用Jenkins 自动部署发布的相关文章

Jenkins自动部署发布Java代码(完整教程)

一.需求 Jenkins大多数情况下都是用来部署Java项目,上一篇博客已经写了自动打包Java项目,但在现实应用中,Jenkins很强大的,可以做到自动打包发布Java项目.这篇文章,将引导大家完成完整的Java项目(自动发布代码功能)! 二.实验环境 三.实验步骤 1.搭建tomcat 服务(在192.168.22.129服务器上) (1)先安装jdk1.8 jdk和tomcat 下载地址: https://pan.baidu.com/s/1URk88Tp2Io0eUEMo1WpoCg 提取

服务器做了格式化后(ip没变),jenkins自动部署报错

jenkins自动部署报错如下:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Some

Jenkins自动部署Shell脚本

注意:本脚本用于Shell脚本分享,因环境不同,不可直接用于其它环境部署用. #!/bin/bash#时间:2019年7月29日#作者:肖山#微信:helpxiaoshan#用途:用于XXXX UAT环境ATG商城项目Jenkins自动部署使用. ############ 使用注意事项:################################################################################# 注意1:需修改目标主机/etc/ssh/sshd

使用Jenkins自动部署nodejs应用

想必部署过nodejs应用的朋友都有过这样的经历: 1.通过ssh登录服务器 2.进入nodejs目录 3.执行:git pull 命令拉取最新代码 4.执行:npm install 安装新依赖 5.执行:pm2 restart all 重新启动所有nodejs进程 如果我们只有一台机器,并且更新不是很频繁,似乎这样的操作还是可以接受,但是如果我们有4台nodejs应用的服务器,每次的代码改动将是灾难! 好在我们有Jenkins帮助我们做这些事情,Jenkins是一个可以自动远程部署,执行远程脚

jenkins自动部署tomcat

关于部署的3种思路: 远程部署(jenkins编译部署到远程服务器): 安装ssh插件 ssh插件配置 添加远程jenkins服务器节点: 本地部署(与jenkins在同一服务器): 关于maven构建的两种选择: 直接选择maven插件 自带插件(): 插件配置(或直接新建maven项目):   添加shell编译过程,通过shell调用服务器的maven环境 jenkins配置: export BUILD_ID=XXXXXX # 必须得加,原因未知,否则无法启动tomcat export p

Glassfish Payara + jenkins自动部署脚本

配置文件内的列需要依次添加cat AutoDeployConf.conf #application domain port target contextroot app_name package_path passwordfiletest domain9 4808 test test test /test.war /test_adminpassword.txt 脚本内容,执行方式./auto_deploy_glassfish.sh applicationcat auto_deploy_glass

利用Jenkins自动部署工具间接构建kettle的调度平台

关于Jenkins的介绍我就不说了,自己百度,因为这个工具调用脚本只是他的功能的冰山一角,其他功能我也不能理解,因为不是那个领域.        下面我就介绍一下为什么我们需要一个调度平台,以及学习完jenkins后,能解决什么问题.然后在开始讲解安装部署,然后再讲一下怎么调用kettle作业(和处理作业依赖) 1.为什么我们需要调度平台?  2.答:可能大部分人对于kettle的调度还是停留在win的计划任务,linux的cron, 但是作业越来越多,作业之间相互依赖,(例如:A作业,b作业,

使用cargo实现jenkins自动部署远程tomcat

转载请标明出处: http://blog.csdn.net/ouyida3/article/details/48089141 tomcat-users.xml配置 <role rolename="manager"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-j

linux服务器安装jenkins自动部署php项目并发送邮箱通知

在Linux服务器上下载Jenkins下载地址:https://jenkins.io/zh/download/选择你的服务器对应的版本,我的是centos6,选择这个版本点击进去:命令行官方已给出,依次执行以下命令行 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-