使用SSH传输到远程服务器,需要有正确的Jenkins环境,包括maven环境,代码托管环境,Java环境,以及相关的Jenkins插件,这里默认这些环境已配好。
远程发布有三个步骤:
一、SSH插件安装
二、SSH Service 配置
三、发布服务
一、安装SSH插件
插件管理在可选插件下,过滤SSH,找到publish over ssh插件,直接安装(我这里已经安装过了,在已安装选项下可以找到publish over ssh)
下载插件二、配置SSH服务器
打开系统配置:
系统配置配置SSH服务(两种方式,一种密码方式,一种秘钥方式,这里介绍密码方式)
配置SSH 服务passphrase: 服务器密码
name: ssh服务名称
hostname: 服务器地址
username:用户名
三、发布服务
这里假设你已经有一个正确可用的item(job)(我的item叫名称叫做Test)
打开Test配置
新增SSH SSH服务配置1 包相对于job目录的相对路径, 我的job绝对路径是C:\Users\39599\.jenkins\workspace\Test\silkroad-rainbowbus-api\target\silkroad-rainbowbus-api.jar Test就是job目录那么1的值就是silkroad-rainbowbus-api\target\silkroad-rainbowbus-api.jar
2 文件前缀
3 要上传到远端服务器的目录
4 上传到服务器后执行的脚本文件
portal.sh
DATE=$(date +%Y%m%d%T)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/java/jdk1.8.0_131 PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=./
JARFILE=silkroad-rainbowbus-api.jar
if [ ! -d $DIR/portal/backup ];then
mkdir -p $DIR/portal/backup
fi
cd $DIR/portal
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv ../$JARFILE $JARFILE
nohup java -jar silkroad-rainbowbus-api.jar &
if [ $? = 0 ];then
sleep 30
tail -n 50 nohup.out
fi
cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
网友评论