自动化部署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,如需转载请自行联系原作者

相关文章
|
18天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
126 61
|
2月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
12天前
|
Web App开发 数据采集 JavaScript
Chrome浏览器实例的TypeScript自动化脚本
Chrome浏览器实例的TypeScript自动化脚本
|
2月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
71 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
64 7
|
1月前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
2月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
2月前
|
运维 Devops
自动化运维:从脚本到DevOps的进化之旅
在数字化时代,自动化运维不仅是提高生产效率的关键,更是企业竞争力的象征。本文将带领读者穿越自动化运维的发展历程,从最初的脚本编写到现代DevOps文化的形成,揭示这一演变如何重塑IT行业的工作模式。通过具体案例,我们将展示自动化工具和实践如何简化复杂任务,优化流程,并促进团队协作。你将发现,自动化运维不仅关乎技术的进步,更体现了人、流程和技术三者之间协同增效的深层逻辑。
|
2月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
2月前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。

热门文章

最新文章