linux jenkins部署脚本,使用Jenkins 自动部署发布
使用Jenkins自动部署发布,继Jenkins部署篇后,
#注意:jenkins路径会有差异,不用在意这个,同一个版本部署2次,发现了2个不同的目录结构,很诧异。
jenkins build玩war包的存放目录:/data/jenkins/workspace/simple/target
自动发布的脚本存放路径:/data/jenkins/jobs/simple
脚本的内容:
脚本使用的是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
效果如下图:
添加构建的执行脚本(注意不是在构建完执行的那块加):
运行job,build完后会执行deploy脚本:
查看远程的tomcat是否发布完成:
当然一般也不会直接在一个工程下面直接加发布脚本,工程要是build不成功呢,或是这次build有问题,有人一直build的呢,会不会一直执行这个发布,同城都是再建一个视图,这个权限只有某些人有,build完后再执行这个deploy job 做发布,加一个视图,再加一个自由构建风格的job(pool很多的话可以加多个)做脚本运行发布的job。
首先copy一个视图:
配置脚本路径,只做脚本发布:
再次运行发布,会直接发布现在jenkins target目录下现存的war包,发布完的效果:
未完待续,后续看看能不能和一些工具结合发布....
Jenkins 的详细介绍:请点这里
Jenkins 的下载地址:请点这里
linux jenkins部署脚本,使用Jenkins 自动部署发布相关推荐
- kubernetesV1.13.1一键部署脚本(k8s自动部署脚本)
kubernetesV1.13.1一键部署脚本(k8s自动部署脚本) devops的那些事 https://www.jianshu.com/p/c26af5647865 请关注公众号,技术获得k8s ...
- Asp.net网站的自动部署-sqlserver数据库的自动部署
Asp.net网站的自动部署 2005-09-28 这段时间要解决的问题是asp.net网站的自动部署,主要功能是在安装的时候实现数据库的部署和基本数据的添加,asp.net网站的部署(多个虚拟目录) ...
- 自动化部署操作系统-Kickstart+PXE自动部署
Kickstart+PXE自动部署 目录: 无人值守安装简介 实战:PXE批量部署linux操作系统 前言 部署dhcp服务 HTTP服务 TFTP服务 复制PXE启动时需要的文件 修改引导启动菜单 ...
- 【github 自动部署】github实现自动部署
由于业务的需求,我需要将每次写好的代码编译好后,并且通过ftp工具远程传到服务器上. 但是,这样的操作带来的问题是:整个的过程变得相当的复杂. 于是,就有了这篇文章. 我们可以这样理解: 当我们把代码 ...
- 热璞数据库HotDB开放下载先知——安装部署篇三(自动部署)
自动部署为管理平台在界面中支持自动化安装部署计算节点集群的功能.目前管理平台从V2.5.0及以后拥有"集群部署"."单机部署"两个自动化安装功能."集 ...
- jenkins+Xcode+蒲公英实现ipa自动打包发布全攻略
http://www.jianshu.com/p/ed124917d6c6 蒲公英:https://www.pgyer.com/udid/ 一步快速获取 iOS 设备的 UDID 请使用 iPhone ...
- centos7.9使用jenkins部署springcloud微服务_配合SVN_脚本_实现自动部署后端以及前端程序_亲测成功---持续集成部署Jenkins工作笔记0023
以前有个jekins教程,还比较详细,但是,那个是基于git和svn,并且需要配置jekins支持git,svn的插件. 配置以后就可以实现只要提交代码,就会自动触发部署,但那个时候安装jenkins ...
- jenkins运行日志时间与linux,持续集成之Jenkins结合脚本实现代码自动化部署及一键回滚至上一版本...
一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负载均衡器删除.解压.复制配置文件.创建软连接.测试每一台web服务器.将we ...
- 怎么将jenkins打包后的war自动部署到jetty上?
1,使用maven的cargo插件,实现远程部署 (官网描述地址:https://codehaus-cargo.github.io/cargo/Jetty+Remote+Deployer.html) ...
最新文章
- awk 控制语句(if for do while)
- java中随机数怎么定义类_浅析Java中的随机数类
- 浅谈云服务器都能用来做什么?
- 【VirtualBox】NAT模式下主机访问客机的设置
- winform实现翻书效果_如何用PPT实现翻书效果?
- 安卓桌面精灵_小米MIUI安卓Q来啦,超多黑科技!凭啥红米先尝鲜?内附预览图...
- linux cp和rm命令
- java通过按钮打开新窗口_如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。...
- 零基础如何学好Python?Python有哪些必须学的知识?
- VTK:可视化之ExtrudePolyDataAlongLine
- bitset与取数凑数类问题
- Java的新项目学成在线笔记-day9(七)
- 【特别关注】2021数据技术嘉年华直播观看指南
- 斯坦福李飞飞CS231n笔记1计算机视觉概述与历史背景
- 数据质量管理有哪些方法
- plsql导出表结构到excel_PLSQL怎样导出oracle表结构和数据
- GIS三维可视化技术在输电领域的应用研讨
- 给IT新人的15点建议
- 三、mongdb 查询
- 自媒体人或初学者以及专业电影制作者最喜欢的八款制作软件推荐(会声会影)(Vegas)