linux下简易部署方案

当我们提起自动化部署方案时,不同的人、不同的公司总会有不同的想法以及方案,有人钟爱Jenkins+Maven+Shell,也有人偏爱git-ci,甚至有人更喜欢手动部署。本文将基于bat+shell+plink+sftp实现远程linux服务器部署,其中bat脚本用于win下文件校验、复制以及打包;shell用于linux下文件移动、删除以及重启;plink用于连接远程linux服务器;sftp用于压缩文件传输。其具体过程如下图所示。

2
部署流程示例图

如下为bat脚本示例,读者可根据需要进行修改

@echo off
:begin
::%cd%为当前文件目录
set deploy_dir=%cd%\..\
:directory
::项目文件目录
set project_dir=C:\临时文件\CMCC_NEW
:selectItem
set /p configSelect=please select scdev,scsit or uat:
::user name
set /p user=please enter username
::password
set /p pass=please enter password
set flag=1
::配置对应ip,
if %configSelect% EQU scdev ( set flag=2
set ip=10.0.0.1
set upload_file=upload_39.txt )
if %configSelect% EQU scsit ( set ip=10.1.1.1
set flag=2
set upload_file=upload_40.txt )

if %flag% EQU 1 ( echo “select error,please select scdev or scsit again”
goto selectItem )
if exist %project_dir%\fssc-base\fssc-base-core\src\main\resources\profiles\scsit\*.* (
goto checkDeploy )
echo config File error ,please check file
goto selectItem
:checkDeploy
if exist %cd%\plink.exe ( if exist %cd%\psftp.exe (goto manageFile))
set /p project_dir= please enter deploy directory:
goto checkDeploy
:manageFile
del /f /s /q %deploy_dir%\uploadFile\*
::class文件
xcopy /y/s %project_dir%\fssc-aggregator\target\fssc-aggregator\*.* %deploy_dir%\uploadFile
::配置文件
xcopy /y/s %project_dir%\fssc-base\fssc-base-core\src\main\resources\profiles\%configSelect%\*.* %deploy_dir%\uploadFile\WEB-INF\classes\
::cas
xcopy /y/s %project_dir%\fssc-base\fssc-base-core\src\main\resources\profiles\cas\spring\*.* %deploy_dir%\uploadFile\WEB-INF\classes\spring\
::JMS
xcopy /y/s %project_dir%\fssc-taxp\fssc-taxp-core\src\main\resources\profiles\scsit\spring\applicationContext-beans-jms.xml %deploy_dir%\uploadFile\WEB-INF\classes\spring\
pushd %deploy_dir%\uploadFile
jar -cvf CMCC.war ./*
pushd %deploy_dir%\psftp
::传输文件
psftp -l %user% -pw %pass% -b %upload_file%
pause
::部署脚本
plink.exe %user%@%ip% -pw %pass% “sh /home/infraadmin/java/apache-tomcat-tax/app/linux_deploy.sh;”
pause

:end

如下为40.txt文件内容

open 10.0.0.1 22
cd /home/infraadmin/java/apache-tomcat-tax/app
put -r ..\uploadFile\CMCC.war
bye

如下为bash脚本

#!/bin/bash
cd /home/infraadmin/java/apache-tomcat-tax/app
##cd /var/CommonSoftware/Tomcat/apache-tomcat-9.0.8/app
if [ -f “old.war” ]; then
rm -rf old.war
fi
if [ -f “tax.war” ]; then
mv tax.war old.war
fi

if [ -f “../webapps/tax.war” ]; then
rm -rf tax.war
fi
mv CMCC.war tax.war
cp ./tax.war ../webapps/tax.war
cd ../bin
##判断Tomcat-tax是否已经启动
count=`ps -ef |grep apache-tomcat |grep -v ‘grep’|wc -l`
if [ 0 == $count ];then
rm -rf ../webapps/tax
sh ./startup.sh
else
sh ./shutdown.sh
rm -rf ../webapps/tax
sh ./startup.sh
fi

以上为本人编写的一个简单脚本示例,其中复制的class文件为开发项目时的运行文件,读者可根据需求,使用maven等工具进行打包。当然最重要的还是plink插件以及sftp插件,此插件可能存在版权问题,请勿用于商业用途。

若读者有兴趣,可点击连接下载

发表评论

电子邮件地址不会被公开。