项目完全自动化部署操作教程
目的
为了省去项目版本发布手动更新、手动上传、手动解压启动应用服务器等重复性的操作,节省时间和精力,全心投入测试工作中或其他事情上。下面介绍一个项目只要通过双击执行bat文件就能实现项目完全的自动化部署过程。
工具
老版本的SecureCRT(5.x版本以下)自带的vsh工具(作用:可直接在cmd窗口输入vsh命令和linux命令操作linux服务器)
SVN
打包工具(如ant、maven)
项目打包要求的jdk版本
以上工具均可在本机或者是远程服务器上安装(1.1.1.2上已安装)
vsh工具使用教程
网上的资料比较少,找了一篇比较实用的,请打开下面的连接查看
http://blog.sina.com.cn/s/blog_60a4fcef0101cyme.html
安装必要提示
SecureCRT安装完成后把vsh工具所在的路径加入到系统变量path中,目的是为了打开cmd窗口后能够直接使用vsh工具。
安装成功后尝试打开cmd窗口输入 vsh -pw 密码 用户名@应用服务器IP,如果应用服务器IP第一次使用vsh提示是否保存秘钥,输入y即可,以后使用该ip就不用重新确认了。建议此步骤务要执行,自动化脚本不管这种一次性输入的操作。
自动化部署原理
这里的自动化是通过在linux服务器端建立停止和启动项目服务的shell脚本,然后借助vsh工具直接向linux服务器发送执行shell脚本的命令,并把vsh命令放在bat批量处理文件中,在window平台直接双击bat文件自动部署项目。因此shell脚本的编写是最关键的。
weblogic版本自动化部署(以abc项目为例)
1、登录应用服务器如(1.1.1.1),在用户目录下(如userabc用户)新建shell脚本 dropCOOPWEB.sh
将以下脚本复制过去,标红的要修改成对应项目目录和端口号。
#设置为项目所在的域目录
project_home=/home/userabc/Oracle/Middleware/user_projects/domains/channel_cq
#删除项目目录
rm -rf $project_home/upload/CoopWeb/*
#通过端口查询,直接杀掉项目占用的进程
kill -9 $(netstat -tlnp | grep 7001 | awk ‘{print $7}’ | awk -F ‘/’ ‘{print $1}’)
2、在用户目录下新建shell脚本 updateCOOPWEB.sh
将以下脚本复制过去,标红的要修改成对应项目的目录
#设置项目所在域目录
project_home=/home/userabc/Oracle/Middleware/user_projects/domains/channel_cq
#进入项目目录
cd $project_home/upload/CoopWeb
#解压war包
jar -xvf CoopWeb.war
cd $project_home/bin
#启动weblogic
nohup ./startWebLogic.sh >nohup.out&
#查看日志
tail -f nohup.out
3、给以上两个脚本赋权
chmod 777 dropCOOPWEB.sh updateCOOPWEB.sh
4、在打包服务器上(1.1.1.2)对应的项目打包目录下,新建ftp.txt文件,修改应用服务器IP、用户名、密码、war包名称和要上传的目录
(binary指使用二进制的方式上传)
Open 1.1.1.1
userabc
userabc
binary
cd /home/userabc/Oracle/Middleware/user_projects/domains/channel_cq/upload/CoopWeb
put CoopWeb.war
bye
5、在打包服务器上(1.1.1.2)对应的项目打包目录下,新建build.bat文件,把以下脚本复制过去
#更新项目
svn update …\V1.0.0 >update.log
#打包编译
call ant16 -f build.xml >build.log
#使用vsh命令向1服务器发送执行dropCOOPWEB_CQ.sh脚本的命令
vsh -pw userabc userabc@1.1.1.1 ./dropCOOPWEB_CQ.sh
#编译完后进入war包所在目录
cd .\build
#根据ftp.txt信息,将war包上传到FTP
ftp -s:…\ftp.txt
#使用vsh命令向1服务器发送执行updateCOOPWEB_CQ.sh脚本的命令
vsh -pw userabc userabc@1.1.1.1 ./updateCOOPWEB_CQ.sh
(build.bat文件和ftp.txt文件存放位置示例,一定要放到项目打包的目录下)
6、双击build.bat,观察cmd窗口的日志打印,如显示running mode则部署成功,可关闭,也可不关闭cmd窗口继续观察日志打印。以后发布环境,只要打包目录不更改,直接双击build.bat文件即可。如果打包目录变了,则重新按以上步骤配置一遍。
FTP上传成功示例
tomcat版本自动化部署(以北京客户感知应用为例)
1、登录应用服务器如(1.1.1.1),在用户目录下(如userabc用户)新建shell脚本 updateCPS_BJ.sh
将以下脚本复制过去,标红的要修改成对应项目目录。(也可以用weblogic那样杀进程的方式停止服务,脚本参照上面的)
#设置项目部署目录
project_home=/home/userabc/cps_bj/tomcat
#停止项目服务
$project_home/bin/shutdown.sh
#删除项目目录
rm -rf $project_home/webapps/cps
#删除缓存
rm -rf $project_home/work/*
#启动项目服务
$project_home/bin/startup.sh
#删除查看日志
tail -f $project_home/logs/catalina.out
2、给以上脚本赋权
chmod 777 updateCPS_BJ.sh
3、在打包服务器上(1.1.1.2)对应的项目打包目录下,新建ftp.txt文件,修改应用服务器IP、用户名、密码、war包名称和要上传的目录
(binary指使用二进制的方式上传)
Open 1.1.1.1
userabc
userabc
binary
cd /home/userabc/cps_bj/tomcat/webapps
put cps.war
bye
4、在打包服务器上(1.1.1.2)对应的项目打包目录下,新建build.bat文件,把以下脚本复制过去
#更新项目
svn update …\V0.7 >update.log
#maven编译项目
call mvn compile > compile.log &
#maven打包项目
call mvn package > package.log
#进入war包所在目录
cd .\target
#根据ftp.txt信息上传war包
ftp -s:…\ftp.txt
#使用vsh命令向linux发送执行updateCPS_BJ.sh的命令
call vsh -pw userabc userabc@1.1.1.1 ./updateCPS_BJ.sh
(build.bat文件和ftp.txt文件存放位置示例,一定要放到项目打包的目录下)
5、双击build.bat文件,观察cmd窗口的日志打印,如显示则startup部署成功,可关闭,也可不关闭cmd窗口继续观察日志打印。以后发布环境,只要打包目录不更改,直接双击build.bat文件即可。如果打包目录变了,则重新按以上步骤配置一遍。
如有优化建议,欢迎各位大神指点!!!!