自动化部署java maven项目到多个目标主机的Shell脚本-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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

简介:

本篇是《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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: