Jenkins通过Send build artifacts over SSH来动态部署项目的时候,需要执行部署的shell,我们需要在被部署的目标机器上,先那台机器上写好好脚本,然后在jenkins上,直接执行脚本即可,不然jenkins,会杀掉我们启动tomcat的命令,导致tomcat启动失败

tomcat启动脚本与自动发布脚本

链接:https://pan.baidu.com/s/1EpAZL0ITCuFa2v3Ag36HlQ

Jenkins之不能启动tomcat-yellowcong_目标目录

控制台输出

Jenkins之不能启动tomcat-yellowcong_tomcat_02

auto_deploy.sh

写一个,自动发布脚本,之需要配置发布的目录,tomcat启动脚本,然后即可发不到目标目录了。

#!/bin/bash

UNPKG_ROOT=/data_vde1/jeeroot//
TOMCAT_SHELL=/etc/init.d/tomcat-8081

#停止tomcat
sh $TOMCAT_SHELL stop

echo 'stop tomcat'

echo '  __                                __   '
echo '_/  |_  ____   _____   ____ _____ _/  |_ '
echo '\   __\/  _ \ /     \_/ ___\\__  \\   __\'
echo ' |  | (  <_> )  Y Y  \  \___ / __ \|  |  '
echo ' |__|  \____/|__|_|  /\___  >____  /__|  '
echo '                   \/     \/     \/      '

##暂停2s
sleep 2

#删除文件
echo '1.delete old ROOT derictory'
rm -rf  $UNPKG_ROOT/ROOT

#拷贝到目标目录
echo '2.copy war'
cp /data_vde1/data_pkg/datav_tomcat/ROOT.war $UNPKG_ROOT

#解压文件
echo '3.unzip ROOT.war '
unzip $UNPKG_ROOT/ROOT.war -d $UNPKG_ROOT/ROOT >/dev/null 

#设定为www
echo '4 set www:www to jeeroot'
chown -R www:www /data_vde1/jeeroot/

#启动tomcat
echo '5 start tomcat '
sh $TOMCAT_SHELL start

exit 0

配置jenkins

配置jenkins编译完事后,执行的脚本。

Jenkins之不能启动tomcat-yellowcong_目标目录_03

Jenkins执行结果

可以看到,编译后,tomcat正常部署了,解决了启动不了tomcat的问题。

Jenkins之不能启动tomcat-yellowcong_目标目录_04

参考文章

https://www.jianshu.com/p/9c0b94aaa135