web应用--远程服务器端的搭建和自动化部署

第一步,环境搭建

项目用到了jdk,数据库使用了redis和mysql,反向代理服务器为ngnix,应用部署到tomcat上,代码用git进行管理,maven进行编译构建,下面一次介绍这些部件的安装。

1.JDK安装

jdk有两种版本,这里采用open-jdk的安装方式。

具体参照 https://www.cnblogs.com/Dylansuns/p/6974272.html

2.tomcat安装

tomcat先到apache官网下载对应版本的包,有的包可能会有tomcat无法启动的问题,这个要根据自己环境的版本去确定。

具体参照 Linux安装tomcat

3.mysql+redis安装

mysql 具体参照安装mysql

redis 具体参照 安装redis

4.ngnix安装

ngnix安装具体参照 nginx的安装步骤

5.其他

代码管理用git,git为Linux本身依赖的,不需要安装

Linux 有些环境的搭建可以利用pip,pip3这个依赖包管理工具来进行,方便快捷。


第二步,自动化部署

这个部分是我要着重介绍的,这里用到了shell脚本来编写应用的自动化编译部署工具

首先我们在 /usr/local下新建一个automake的文件夹,用于管理自动化部署的脚本工具。

然后在 /usr/local下将我们的代码利用 git clone 拉取到本地项目文件,这里我利用来远程的GitHub来管理代码。

建议在操作之前,先利用 sudo -i 命令切换到root用户模式,普通用户有很多权限问题,为了方便,这里选用root用户操作

在我们的aotumake文件夹下新建三个文件,如图


这三个文件分别为自动编译,自动部署工具,及回滚版本工具

下面就这三个脚本进行介绍:

编译脚本autobuild.sh

#! /bin/sh

echo '####################开始编译####################'

path=`/usr/local/online-forum` #当前路径

cd /usr/local/online-forum

echo '####################拉取最新代码####################'

git pull   #拉远程代码到服务器

mvn clean install #这里我遇到的问题是如果直接install,部署后会有404问题,先clean再install可以解决这个问题

echo '####################编译结束####################'


自动化部署脚本autodeploy.sh

#! /bin/sh

echo '####################开始自动部署####################'

path=/usr/local/automake     #当前路径

pathpro=/usr/local/online-forum/target     #war包路径

tomcatPath=/usr/local/apache-tomcat-8.5.23     #指定tomcat文件目录名称

cd $tomcatPath/bin     #进入tomcat的bin目录

PID=$(ps -ef|grep tomcat|grep -v grep|awk '{print $2}')

if [ -z "$PID" ];then

 echo "no tomcat process"

else

./shutdown.sh     #停止tomcat服务

echo '####################tomcat服务停止####################' 

fi

sleep 1     #休眠1s

cd ../webapps     #进入tomcat的webapps目录

rm -fr 1.03     #删除对应项目文件目录,我的项目为1.03

echo '####################删除原文件目录####################'

mv 1.03.war 1.03.war.$(date +%Y%m%d)     #备份webapps下的旧版本war包

echo '####################备份原war包到webapps目录下####################'

cp $pathpro/1.03.war ./     #复制test.war到webapps路径下

sleep 1 #休眠1s

cd ../bin

./startup.sh     #启动tomcat服务

echo '####################tomcat服务启动####################'

echo '####################部署结束####################'


回滚脚本 resetdeploy.sh。执行时需要一个以前版本的参数,具体可以到tomcat下webapps/文件查看旧版本的war包参数。

#! /bin/sh

echo '####################开始回滚版本####################'

path=/usr/local/automake     #当前路径

tomcatPath=/usr/local/apache-tomcat-8.5.23     #指定tomcat文件目录名称

cd $tomcatPath/bin     #进入tomcat的bin目录

if [ -n $1 ];then     #判空操作

 echo "回退版本为$1"

else

 echo '#############请输入参数,参数为版本号###############'

 exit 

fi

PID=$(ps -ef|grep tomcat|grep -v grep|awk '{print $2}')

if [ -z "$PID" ];then

 echo "no tomcat process"

else

./shutdown.sh #停止tomcat服务

echo '####################tomcat服务停止###############' 

fi

sleep 1 #休眠1s

cd ../webapps  #进入tomcat的webapps目录

rm -fr 1.03   #删除test文件目录

echo '##############删除现文件目录###############'

mv 1.03.war.$1 1.03.war  #回滚

echo '##################回滚原war包到目录下####################'

sleep 1 #休眠1s

cd ../bin

./startup.sh   #启动tomcat服务

echo '####################tomcat服务启动####################'

echo '####################回滚结束####################'


这三个脚本的注释已经非常清楚了,详情看注释,这里就不做介绍了。



这就是一个完整的服务器环境的搭建与部署的流程,自己在部署的过程中,肯定会遇到很多问题,但解决的问题越多,对应用的开发与部署的理解就越深。

所以,Do it !,然后,耐心点。





猜你喜欢

转载自blog.csdn.net/qq_32231495/article/details/80304296
今日推荐