自动化部署java maven项目到多个目标主机的Shell脚本

本文介绍了一种自动化部署Java Maven项目的方法,支持单个或多个目标主机,具备手动及自动版本回滚功能,并能在线更新配置文件。部署过程包括源码克隆、编译、打包及通过SSH上传至目标服务器。

本篇是《Linux Shell脚本之远程自动化部署java maven项目》的姊妹篇,但包含了bug、issue修正和添加了更多的支持特性,可以从GitHub上获取最新脚本内容:https://github.com/DingGuodong/AutomaticDeployJavaMavenProject 。

自动化部署java maven项目到多个主机的环境条件假设:

1.java maven项目至多有一个依赖项目

2.多个目标主机上的部署目录是相同的

支持特性:

1.在部署主机上将java maven项目以及依赖项目(当前脚本的编写只假设依赖项目只有一个)编译,将编译后的Class以及配置文件通过ssh上传到单个或多个目标主机的指定目录

2.单个目标主机部署模式支持手动版本回滚和自动回滚,多个目标主机部署模式支持手动回滚(手动回滚的意思就是需要人工选择需要回滚的版本)

3.支持在线更新配置文件,配置文件更新后运行脚本中的backup_manual函数,重新执行deploy[s]操作即可

4,允许用户定义是否跳过网络自检,这个特性在网络管理员禁用ICMP协议以及属于内网部署时有用

使用办法:             
将脚本上传到Linux任意目录,修改以下变量:

1
2
3
4
5
6
7
8
user_defined_project_clone_depends= "ssh://git@git.huntor.cn:18082/core/business-service-base.git"  # java maven项目的相关依赖源码文件所在的git地址,如果没有依赖则可省略
user_defined_project_clone= "ssh://git@git.huntor.cn:18082/core/business-service-core.git"  # java maven项目的源码文件所在的git地址
user_defined_deploy_target_host_ip= "10.6.28.135"  # 如果部署单个目标主机则在此处填写一个IP,无论是否部署多个目标主机,此项不能为空,多个目标主机的部署模式会用到这个主机上的配置文件
user_defined_deploy_targets_host_ip_list= "10.6.28.135 10.6.28.28"  # 如果一次性部署多个目标主机,则填写多个IP,用空格隔开,第一个IP必须与上面的user_defined_deploy_target_host_ip相同
user_defined_project_top_directory_to_target_host= "/tmp/deploy_test_target"  # 部署到目标主机上的哪一个目录
user_defined_docker_container_name= "testcontainer"  # 需要重启的容器名称
user_defined_project_conf_directory= "backup"  # 配置文件目录的绝对路径或者与此脚本相同目录位置的相对路径
user_defined_skip_check_network_and_resolver= "true"  # 如果想跳过网络自检,则设置为true,否则设置为false。

运行脚本和使用方法:           
在任意位置使用下方命令运行即可,脚本一旦运行一次,自动添加可执行权限,无须手动添加。

1
2
3
4
5
bash  /path/to/this</



本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/1784390,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值