jenkins自动化发布到服务器并自动运行

《Docker+Jenkis+Gitlab+Springboot简单发布》

自动化发布到服务器并自动运行

确保已经安装了Publish Over SSH插件以及在系统配置——》Configure System——》配置了Publish over SSH服务器相关信息

Post Steps(构建)

jenkins自动化发布到服务器并自动运行_第1张图片
jenkins自动化发布到服务器并自动运行_第2张图片

部署脚本(构建成功,脚本却没有执行,即项目没启动。应该是少了这句source /etc/profile

source /etc/profile
nohup java -jar /jenkins/gitlabdemo/gitlabdemo*.jar >/dev/null 2>&1 &

Pre Steps(构建前)

部署服务器创建脚本

vim /jenkins/gitlabdemo_build_front.sh
#!/bin/bash

#删除历史数据
rm -rf gitlabdemo/*

appname=$1
#获取传入的参数
echo "arg:$1"


#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`

echo $pid

#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
        then
                echo "$appname not started"

        else
               kill -9 $pid
                echo "$appname stoping...."

check="`ps -ef | grep -w $pid | grep java`"
if [ -z $check ];

        then
                echo "$appname pid:$pid is stop"
        else
                echo "$appname stop failed"

fi


fi

授权脚本可执行权限,不然构建的时候会抛出异常:[Exec exit status not zero. Status [126]]

chmod +x /jenkins/gitlabdemo_build_front.sh

回到jenkins
jenkins自动化发布到服务器并自动运行_第3张图片

jenkins自动化发布到服务器并自动运行_第4张图片

sh /jenkins/gitlabdemo_build_front.sh gitlabdemo

下一篇

《Jenkins自动部署springboot的Docker镜像,解决Status [1]问题》

你可能感兴趣的:(jenkins,自动化,服务器)