要实现jenkins打包发送到远程服务器,此时,需要借助一款名叫Publish Over SSH 的插件,借助此插件,我们可以将在本地使用Jenkins构建好的jar包或者是war包发送到指定服务器的指定目录上,然后运行相应的脚本,以实现分布式项目构建管理持续集成工作。

安装好插件后,我们对插件做一些相关配置。点击 系统管理 ---> 系统设置



在上面的配置信息中,一共涉及到5个配置信息,依次如下:

配置好了后,我们可以点击下方的Test Configuration按钮进行测试连接,当能够正常访问到时,则提示 success,否则会报错。这里可以校验配置信息是否有误。
下面我们再来到项目配置里面,在项目配置里,有一个构建后操作Post Steps,我们在此处选择Send files or execute commands over SSH 安装插件Publish Over SSH 可以看到此项,这里的配置信息如下:

此处配置一共有5处输入项,含义如下:

在其他配置项也都配置完整后,我们可以开始构建工程。比如,我需要向192.168.88.130服务器发送程序包。构建程序。


下面是我是用的Shell脚本,目前还有点问题,仅供参考。
#!/bin/bash
#description: 启动重启server服务
#端口号,根据此端口号确定PID
PORT=8889
#启动命令所在目录
HOME='/ard/topic/'
#根据项目端口号停止项目
pid=`netstat -anp|grep $PORT|awk '{printf $7}'|cut -d/ -f1`
start(){
if [ -n "$pid" ]; then
echo "server already start,pid:$pid"
return 0
fi
cp -a /var/lib/jenkins/workspace/platform-topic/target/*.jar $HOME
#进入命令所在目录
cd $HOME
nohup java -jar $HOME/platform-topic.jar & > $HOME/server.log 2>&1 & #启动服务器 把日志输出到HOME目录的server.log文件中 echo "start at port:$PORT"
}
stop(){
if [ -z "$pid" ]; then
echo "not find program on port:$PORT"
return 0
fi
#结束程序,使用讯号2,如果不行可以尝试讯号9强制结束
kill -9 $pid
rm -rf $pid
echo "kill program use signal 2,pid:$pid"
}
status(){
if [ -z "$pid" ]; then
echo "not find program on port:$PORT"
else
echo "program is running,pid:$pid"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
$0 stop
sleep 2
$0 start
;;
status)
status
;;
*)
echo "Usage: {start|stop|status}"
;;
esac
exit 02018年12月6日 22:37:39
文章转载自加耀,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




