《架构系列四:一键部署应用到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集群中》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 机器学习在信道建模中的应用综述
  2. chgrp r mysql ._mysql操作命令
  3. 【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解
  4. 为什么需要DTO(数据传输对象)
  5. Linux测试端口的连通性的四种方法
  6. python安装beautifulsoup失败_Win10环境下python36安装BeautifulSoup出现错误的解决办法
  7. MOSS 2007 错误0x80040E14解决
  8. 7年老员工的6点离职忠告
  9. java读取局域网种大华摄像机信息
  10. MATLAB画柱状图(包括普通柱状图,多组柱状图,三维柱状图)
  11. Java8日期类型常见用法总结
  12. myeclipse部署多个应用到不同的weblogic domain中
  13. 接口耗时优化与cpu飙高解决
  14. arcgis路网密度计算、提取中心线、面积计算
  15. 字节跳动裁员不发年终奖致员工与HR薅头发互殴?字节回应来了
  16. echarts 柱状图数值为0时 显示柱体
  17. 手机5g什么时候普及_5G网络什么时候普及,5G手机什么时候买比较合适?
  18. staruml 免费版
  19. 在CorelDRAW中的自定义彩虹笔刷创建迷幻背景
  20. 超级牛bi的软件工具大全 珍藏版【人手一份】

热门文章

  1. 黑匣子解密要多久_“黑匣子”揭秘
  2. 【MATLAB、深度学习】AlexNet及VGG神经网络在MATLAB上的应用
  3. 【实验1】——脉冲测距
  4. V4L2 API数据结构
  5. python函数的嵌套和递归_Python通过递归函数输出嵌套列表元素
  6. ML、DL、CNN学习记录7
  7. 【LeetCode】剑指 Offer 51. 数组中的逆序对
  8. 力扣529.扫雷游戏
  9. 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么
  10. kafka详解及搭建