《架构系列四:一键部署应用到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)
do
 rm -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)
do
 p1=$[port+j-1]
 p2=$[port+j]
 sed -i "s/$p1/$p2/g" /deploy/war/temp/WEB-INF/classes/prop/sdp-crm.properties
 zip -r /deploy/tomcat/tomcat8.5-0$j/webapps/server-crm.war ./
done

echo '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.properties
 zip -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
done

echo '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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Tomcat和Apache集群和负载均衡配置 Tomcat版本:apache-tomcat-7.0.26 Apache版本:Apache2.2.25 jre版本:1.6.0_26 集群和负载均衡配置已整好,解压后,只要点击run.bat一键启动,即可看到集群效果。 运行成功后,点击Cluster App Test就可以看到集群效果。 本系统模拟了三个tomcat,如需增加或者修改tomcat,可以在Apache目录的conf目录下的workers.properties进行配置。 #server worker.list = controller #========tomcat1======== worker.tomcat1.port=11009 worker.tomcat1.host=localhost worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor = 1 #========tomcat2======== worker.tomcat2.port=12009 worker.tomcat2.host=localhost worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor = 1 #========tomcat3======== worker.tomcat3.port=13009 worker.tomcat3.host=localhost worker.tomcat3.type=ajp13 worker.tomcat3.lbfactor = 1 #========controller,负载均衡控制器======== worker.controller.type=lb worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3 worker.controller.sticky_session=false worker.controller.sticky_session_force=1 #worker.controller.sticky_session=1 如需手动配置内容如下: Apache: 1.安装mod_jk-1.2.31-httpd-2.2.3.so至Apache目录的modules目录下 2.拷贝mod_jk.conf和workers.properties文件至Apache目录的conf目录下 3.Apache目录下的conf目录的httpd.conf文件末行增加内容: include "conf/mod_jk.conf" Tomcat: 1.分别复制三个tomcat 2.配置conf/server.xml文件 1)修改三个端口 原为8009 8080 8005 2)在原8009端口下面修改两行内容: 这里的tomcat1对应的是workers.properties文件 3.三个tomcat分别部署Test工程
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值