基于linux下的Jenkins热部署配置

插件的安转

首先在jenkins插件管理中找到 publish over ssh ,并安转。
基于linux下的Jenkins热部署配置_第1张图片

系统配置

插件安装号以后,在jenkins 的系统配置里面的最下方会有个shh的相关配置选择。
基于linux下的Jenkins热部署配置_第2张图片
目标服务器这边 登录方式有三种,可自行选择,我这边是按照密码登录
基于linux下的Jenkins热部署配置_第3张图片

构建配置

(基础发布的构建可以参考我之前的文章,这边主要是讲热部署)
在构建后选择Send build artifacts over SSH,并按照自身需求完成配置。
Source files: 需要发送给远程主机的源文件。
Remove prefix 移除前面的路径。如果不设置这个参数,则远程主机会自动创建构建源 source files 包含的那个路径。
Remote directory: 远程主机目录。

基于linux下的Jenkins热部署配置_第4张图片
注:Remove prefix 的路劲设置需要特别注意,以下是jenkins打包后war包存放的路径:/var/lib/jenkins/workspace/Test-Maven/target/test.war,jenkinsRemove prefix的初始路径是到“Test-Maven”这一层的。

Exec command: 在远程主机上执行的命令,或者执行的脚本。
基于linux下的Jenkins热部署配置_第5张图片

echo ‘STOP donghang service’
tomcat_home=/usr/local/Tomcat8.5
sh $tomcat_home/bin/shutdown.sh;
ls
tom_pid=`ps -ef | grep tomcat8_8095 | grep -v grep | awk '{print $2}'`
if [ -n "$tom_pid" ];
then
echo “tomcat 关闭失败,将强制结束进程:” $tom_pid 
kill -9 $tom_pid;
fi
echo “tomcat 进程结束” 
echo “清空weapps部署目录并复制新war包…” 
rm -rf $tomcat_home/webapps/ROOT $tomcat_home/webapps/ROOT.war
cp $tomcat_home/webapps/app/sdHr-0.0.1-SNAPSHOT.war $tomcat_home/webapps/ROOT.war
echo “重新启动项目…” 
BUILD_ID=dontKillMe
sh $tomcat_home/bin/startup.sh

脚本中最主要的就是将历史war包删除,然后将webapps/app下的war包复制到webapps文件夹下,并将war包改名ROOT。

扩展

改名这段可通过其他方法实现:
在构建时做相应配置,这个时候就直接将war包名称定义好

基于linux下的Jenkins热部署配置_第6张图片

pwd
if [ -e "*.war" ]; then 
    rm -rf *.war
fi
cp /var/lib/jenkins/workspace/DsmsTest-Maven/target/*.war /target/ROOT.war

笔记:
spingboot 打war包 需要注意,由于springboot内置了Tomcat 所以打war包,需要修改pom相应配置,使其打包时提出Tomcat,并且项目启动项需要调整

大佬链接: springboot打war包的详细说明

参考大佬文章: springboot启动类SpringApplicationBuilder说明

你可能感兴趣的:(jenkins,linux)