项目自动化发布与部署

目前,部署的方式是:一个项目一台机器,使用3个tomcat部署的方式。

以往,是本地(windows)开发、打包然后上传的Linux服务器上,不太方便,所以,使用SVN+Shell的方式自动化部署项目。

主要思路:

在Linux服务器上通过svn clone一份源码。

当要新发布工程时,将本地的源码更新到svn,

服务器上的源码也执行更新操作即可。

先说明项目的部署文件夹:/xxx/tomcats/工程名。

该文件夹下有以下文件(夹)

这里写图片描述

其中,

1、2、3是3个tomcat实例。

svn用于存放bingu工程源码。

sh存放shell文件,目前包括两个,shutdown.sh:关闭所有的tomcat实例;startup.sh,启动所有的tomct实例。

deploy.sh是自动化部署的关键。

deploy.sh内容如下:

#!/bin/bash
PROJECT="bingu"
cd ./svn/bingu/
echo "going to update project: ${PROJECT}."
svn update
echo "svn update done."
echo "going to 'mvn package'."
mvn clean package -Dmaven.test.skip=true  -DportableConfig="src/main/portable/prod.xml"
echo "mvn package done."

echo "going to shutdown all the tomcats."
./../../sh/shutdown.sh
echo "tomcats have been shutdown."

echo "-------------------------------------------------"
echo "going to clean existing ${PROJECT}.war & ${PROJECT} folder from webapps."
rm  ../../1/webapps/${PROJECT}* -r
rm  ../../2/webapps/${PROJECT}* -r
rm  ../../3/webapps/${PROJECT}* -r
echo "going to copy ${PROJECT}.war to all webapps."
cp ./target/${PROJECT}.war   ../../1/webapps/
cp ./target/${PROJECT}.war   ../../2/webapps/
cp ./target/${PROJECT}.war   ../../3/webapps/
echo "${PROJECT}.war copied to webapps."
echo "-------------------------------------------------"

echo "going to start all the tomcats"
./../../sh/startup.sh
echo "tomcats have been startup."

shutdown.sh(杀死所有的tomcat进程)内容如下:

ID=`lsof -i:8080 -i:8081 -i:8082 | awk '{print $2}'`
echo $ID
echo "To kill all the tomcat processes:"
echo "##############################"
for id in $ID
do
  kill -9 $id
  echo "killed $id"
done
echo "#############################"

startup.sh(启动所有的tomct实例)内容如下:

/home/zheda/software/tomcats/bingu/1/bin/startup.sh -server -Xms 6144m -Xmx 6144m -XX:PermSize 2048m -XX:MaxPermSize 2048m
/home/zheda/software/tomcats/bingu/2/bin/startup.sh -server -Xms 6144m -Xmx 6144m -XX:PermSize 2048m -XX:MaxPermSize 2048m
/home/zheda/software/tomcats/bingu/3/bin/startup.sh -server -Xms 6144m -Xmx 6144m -XX:PermSize 2048m -XX:MaxPermSize 2048m

所以只需要执行./deploy.sh操作,即可完成自动部署;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值