《架构系列四:一键部署应用到Tomcat集群中》
《架构系列四:一键部署应用到Tomcat集群中》
基于前面的《架构系列三:使用Keepalived+Nginx+tomcat实现集群部署》,我们配置了nginx+Tomcat集群,如果需要在VM1,VM2各部署6个Tomcat,这时候怎么将应用部署到集群中呢,如果手动一个一个的部署,那要部署12次,效率非常底,因此我们迫切需要一键自动部署的功能
集群信息
VM1:192.168.130.128
Tomcat:tomcat8.5-01,tomcat8.5-02,tomcat8.5-03,tomcat8.5-04,tomcat8.5-05,tomcat8.5-06
VM2:192.168.130.129
Tomcat:tomcat8.5-01,tomcat8.5-02,tomcat8.5-03,tomcat8.5-04,tomcat8.5-05,tomcat8.5-06
路径准备
在VM1,VM2根路径下各创建如下路径:
cd /
mkdir -p deploy/tomcat
mkdir -p deploy/myscript
mkdir -p deploy/war/temp
说明:
/deploy/tomcat/ tomcat的存放路径
/deploy/myscript/ 存放一键部署的脚本
/deploy/war/ 存放war包
/deploy/war/temp/ 存放通过脚本解压后的war包的内容,因为可能会对解压后的内容做一些修改
部署脚本
通过FTP工具FileZilla将准备好的war包上传到VM1,VM2下的/deploy/war路径下
将Tomcat配置好,分别上传到VM1,VM2中的/deploy/路径下
[app@localhost deploy]$ ls
tomcat8.5-01 tomcat8.5-02 tomcat8.5-03 tomcat8.5-04 tomcat8.5-05 tomcat8.5-06
在/deploy/myscript路径下,创建init_war_to_server.sh脚本,将修改后的WAR包,分别上传到Tomcat的webapps路径下
#!/bin/bash
#删除临时文件
rm -rf /deploy/war/temp/*
#清空tomcat/webapps路径下的文件
for i in $(seq 1 6)
dorm -rf /deploy/tomcat/tomcat8.5-0$i/webapps/*
done#解压war包到temp路径下
unzip /deploy/war/server-crm.war -d /deploy/war/temp#6001节点直接复制
cp /deploy/war/server-crm.war /deploy/tomcat/tomcat8.5-01/webapps/cd /deploy/war/temp/#端口替换,将p1替换为p2
#打成war包,并上传到指定tomcatwebapps目录
port=6000
for j in $(seq 2 6)
dop1=$[port+j-1]p2=$[port+j]sed -i "s/$p1/$p2/g" /deploy/war/temp/WEB-INF/classes/prop/sdp-crm.propertieszip -r /deploy/tomcat/tomcat8.5-0$j/webapps/server-crm.war ./
doneecho 'finish!!!!!!!!!!!'
在不同的tomcat中,sdp-crm.properties中的端口号是不一样的,对应关系如下
tomcat8.5-01 ------ 6001
tomcat8.5-02 ------ 6002
tomcat8.5-03 ------ 6003
tomcat8.5-04 ------ 6004
tomcat8.5-05 ------ 6005
tomcat8.5-06 ------ 6006
因此在脚本中,首先修改sdp-crm.properties中的端口号,然后再将修改后的文件压缩成war包,存放在对应的tomcat中
sed -i "s/$p1/$p2/g" /deploy/war/temp/WEB-INF/classes/prop/sdp-crm.propertieszip -r /deploy/tomcat/tomcat8.5-0$j/webapps/server-crm.war ./
WAR包准备好后,接下来在/deploy/myscript路径下,创建start_tomcat_server.sh脚本,用于启动tomcat
#!/bin/bash
for i in $(seq 1 6)
do/deploy/tomcat/tomcat8.5-0$i/bin/startup.sh
doneecho 'finish!!!'
脚本准备好后,接下来给脚本授予执行权限,然后启动脚本
cd /deploy/myscript
chmod +x init_war_to_server.sh
chmod +x start_tomcat_server.sh./init_war_to_server.sh
./start_tomcat_server.sh
到此,整个一键部署就完成了,要是打WAR包也做成自动化脚本,再结合上面的自动部署,就完美了,总结一下上面的内容
1.将打包的WAR包上传到/deploy/war目录下
2.通过init_war_to_server.sh脚本,修改WAR包中的内容,并将修改后的内容打成新的WAR包,放到对应的TOMCAT中
3.通过start_tomcat_server.sh脚本,启动所有的TOMCAT
《架构系列四:一键部署应用到Tomcat集群中》相关推荐
- ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- 信息学奥赛真题解析(玩具谜题)
玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...
- 信息学奥赛一本通习题答案(五)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通习题答案(三)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通题目代码(非题库)
为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...
- 信息学奥赛一本通(C++版) 刷题 记录
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...
- 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离
首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...
最新文章
- 机器学习在信道建模中的应用综述
- chgrp r mysql ._mysql操作命令
- 【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解
- 为什么需要DTO(数据传输对象)
- Linux测试端口的连通性的四种方法
- python安装beautifulsoup失败_Win10环境下python36安装BeautifulSoup出现错误的解决办法
- MOSS 2007 错误0x80040E14解决
- 7年老员工的6点离职忠告
- java读取局域网种大华摄像机信息
- MATLAB画柱状图(包括普通柱状图,多组柱状图,三维柱状图)
- Java8日期类型常见用法总结
- myeclipse部署多个应用到不同的weblogic domain中
- 接口耗时优化与cpu飙高解决
- arcgis路网密度计算、提取中心线、面积计算
- 字节跳动裁员不发年终奖致员工与HR薅头发互殴?字节回应来了
- echarts 柱状图数值为0时 显示柱体
- 手机5g什么时候普及_5G网络什么时候普及,5G手机什么时候买比较合适?
- staruml 免费版
- 在CorelDRAW中的自定义彩虹笔刷创建迷幻背景
- 超级牛bi的软件工具大全 珍藏版【人手一份】
热门文章
- 黑匣子解密要多久_“黑匣子”揭秘
- 【MATLAB、深度学习】AlexNet及VGG神经网络在MATLAB上的应用
- 【实验1】——脉冲测距
- V4L2 API数据结构
- python函数的嵌套和递归_Python通过递归函数输出嵌套列表元素
- ML、DL、CNN学习记录7
- 【LeetCode】剑指 Offer 51. 数组中的逆序对
- 力扣529.扫雷游戏
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么
- kafka详解及搭建