Jeninks远程部署war包

Posted nsh123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jeninks远程部署war包相关的知识,希望对你有一定的参考价值。

主体上看别人的脚本,然后和开发协商,做出符合自己的生产脚本................................

脚本一:

#!/bin/bash
DATE=`date +%F-%H-%M`

PROJECT=HBKeNong-1.0-SNAPSHOT
PROJECT_TARGET=HBKeNong

ROOTDIR=/usr/local
TOMCAT_HOME=/usr/local/test-tomcat-01

#停止tomcat服务
echo 停止test-tomcat-01
sh ${TOMCAT_HOME}/bin/shutdown.sh
ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk {print $2} | xargs kill -9

cp ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${ROOTDIR}/test_war_backup/test-${PROJECT}-${DATE}.war

rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}

mv ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war

#启动tomcat服务
echo 启动test-tomcat-01
sh ${TOMCAT_HOME}/bin/startup.sh

 脚本二:

#这里需要加上JAVA_HOME的配置,虽然在本地的环境变量中已经配置了,但是远程调用的时候,还是需要配上的,否则执行脚本出错。
export JAVA_HOME=$HOME/java/jdk1.8.0_171
tomcat_home=/home/fangjl/tomcat/apache-tomcat-7.0.88
#【3.1】 停止tomcat变量
SHUTDOWN=$tomcat_home/bin/shutdown.sh
#【3.2】 启动tomcat变量
STARTTOMCAT=$tomcat_home/bin/startup.sh
#【3.3】 删除项目文件 如果是局部发布这句不需要 这只是正对jenkins整个war发布
rm -rf /home/fangjl/tomcat/apache-tomcat-7.0.88/webapps/report*

#得到进程ID 这里也可以简写 如果你ps -ef|grep 项目名称 可以带出PID 那么可以直接写成这样
#之前为什么写那么长 是因为在用jenkins调用脚本的时候,也会带出jenkins调用脚本的那个进程 这样kill -9 就会killjenkins进程 导致一建发布中断
#所以这里一直写到了conf文件夹目录
#如果不需要用到jenkins可以用下面简洁版 得出PID命令
#PID=`ps -ef |grep 项目名称  |grep -v grep | awk {print $2}`
#【3.4】 获取进程ID
PID=`ps -ef |grep /home/fangjl/tomcat/apache-tomcat-7.0.88/conf |grep -v grep | awk {print $2}`
if [ ! "$PID" ];then # 这里判断TOMCAT进程是否存在
    echo "进程不存在"
else
    echo "进程存在 杀死进程PID$PID"
    kill -9 $PID
fi

#【3.5】启动项目
$STARTTOMCAT   

 

自己创建一个工程项目:

技术图片

 步骤如下

技术图片

 设置git

技术图片

 设置mvn

技术图片

  自己在生产环境使用的脚本

#!/bin/sh
#执行shell脚本
scp -r /var/lib/jenkins/workspace/onXXXXm/member/target/XX.war 47.XX.XX.182:/home/XX.war


#到目标服务器47.XX.XX.182推送正式XX.war包服务(执行下面脚本即可)
ssh root@47.XX.XX.182 /home/wallet_start.sh

 启动脚本:

[root@iZj6c6g9pt4wd4xt1xi69zZ home]# cat wallet_start.sh
#!/bin/bash
DATE=`date +%F-%H-%M`

PROJECT_TARGET=wallet
BACKUP_DIR=/backup
TOMCAT_HOME=/home/cat_wallet

#停止tomcat服务

echo 开始正式更新,祝您一次性更新成功.......................
echo 停止wallet测试项目
sh ${TOMCAT_HOME}/bin/shutdown.sh
ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk {print $2} | xargs kill -9

echo  正在备份war包
cp ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war ${BACKUP_DIR}/cat${PROJECT}-${DATE}.war

echo  正在删除原始war包信息
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}

echo 将war包移动到项目目录
mv /home/${PROJECT_TARGET}.war  ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war

#启动tomcat服务
echo 启动wallet项目
sh ${TOMCAT_HOME}/bin/startup.sh

技术图片

参考博客

https://blog.csdn.net/fjl19900121/article/details/80901997

以上是关于Jeninks远程部署war包的主要内容,如果未能解决你的问题,请参考以下文章

tomcat远程部署war包,显示连接被重置

使用Jenkins远程部署war包到tomcat container

远程Debug项目(jar包和war包)

Maven部署war项目到远程Tomcat服务器

tomcat 以war包部署后如何增量更新代码

jenkins部署war包到远程服务器的tomcat