1

时间:2017年03月21日星期二

说明:本脚本并不是完全的自动部署,只是优化基于Tomcat部署项目流程。优点:降低部署难度、减少出错几率、提高部署效率、自动备份项目。

在编写自动发布脚本之前,需先安装Tomcat。传送门:https://segmentfault.com/a/11...

步骤一:了解整体流程

人工发布与自动发布流程对比

clipboard.png

步骤二:搭建部署环境

已配置好一个Tomcat服务器,命名为Web应用名称

clipboard.png

创建目录结构如下

Demo
--hello
    --bin
    --log
    --lib
    --webapp
    --……
--deploy
    --helloBak
    --helloFtp

Hello:Web应用Tomcat服务器
Deploy:自动发布目录
HelloBak:项目备份目录
HelloFtp:项目上传目录

clipboard.png

步骤三:编写自动发布脚本

#!/bin/bash

# @describe 基于Tomcat自动发布脚本
# @author ZhangCheng
# @date 2017-03-21
# @version V1.0

# mkdir bak
DATE=$(date +%Y%m%d)-$(date +%H%M)
mkdir /home/zc/demo/deploy/helloBak/$DATE
echo "1、创建备份目录完毕"

# kill tomcat
ps -ef |grep 'hello' |grep -v grep|awk '{print $2}'|xargs kill -9
echo "2、杀掉进程执行完毕"

# backup project
cp /home/zc/demo/hello/webapps/hello.war /home/zc/demo/deploy/helloBak/$DATE
echo "3、原包文件备份完毕"

# clean tomcat webapp
rm -r /home/zc/demo/hello/webapps/hello*
echo "4、清理原包文件完毕"

#deploy project
cp /home/zc/demo/deploy/helloFtp/hello.war /home/zc/demo/hello/webapps/
echo "5、拷贝新包文件完毕"

#start tomcat
sh /home/zc/demo/hello/bin/startup.sh
echo "6、重新启动进程完毕"

说明:依据具体环境,将目录路径及项目名更改即可。可以使用pwd命令,查看当前目录路径。

特别提示:Linux系统不同,可能存在差异。本脚本基于CentOS release 6.7版本系统。

将自动发布脚本上传到deploy目录,并命名为helloDeploy.sh

clipboard.png

给该脚本授权,使其具备可执行权限

chmod +x ./helloDeploy.sh

步骤四:进行验证

上传项目升级包到helloFtp目录

clipboard.png

执行脚本

clipboard.png

查看备份文件

clipboard.png

访问网站

clipboard.png


妙手空空
1.3k 声望368 粉丝

博观而约取,厚积而薄发