一:准备工作

1.springboot dubbo(zookeeper) nginx前后端分离 linux服务器环境安装 

参考博客:https://blog.csdn.net/ssyujay/article/details/81271830

2.jenkins maven role权限控制 linux服务器安装

参考博客:https://blog.csdn.net/ssyujay/article/details/81277028

二:准备工作

1.进入http://xxx.xxx.xxx.xx:8080/jenkins

2.依次选择,系统管理->系统设置->Publish over SSH 配置目标应用服务器

然后点击 按钮Test Configuration,如果显示Success,表示目标应用服务器配置成功

点击保存。

3.新建视图yui2,点击确定后,再点击保存

4.在视图yui2下,创建一个新的任务,maven任务

1)输入任务名称 yui2-system-provider,且选择 构建一个maven项目

2)进入任务编辑页面

编辑,丢弃旧的构建,为了节省部署服务器存储空间

配置项目svn信息,如果没有svn凭证,先创建用户凭证

指定打包配置文件 clean install -Dmaven.test.skip=true -P stage

ssh到目标应用服务器

**/target/yui2-system-provider.jar

yui-parent/yui-system/yui-system-provider/target

/usr/local/tomcat/yui2/save



JDK_DIR="/usr/java/jdk1.8.0_151"
PRO_DIR="/usr/local/tomcat/yui2"
PRO="yui2-system-provider"
ps -ef|grep $PRO|grep -v grep|awk '{print $2}'|xargs kill -9
rm -rf $PRO_DIR/$PRO*
cp $PRO_DIR/save/$PRO.jar $PRO_DIR/$PRO.jar

BAK_DIR="$PRO_DIR/save/bak/$PRO/`date +%Y%m%d`"
mkdir -p $BAK_DIR

mv $PRO_DIR/save/$PRO.jar $BAK_DIR/"$PRO"_`date +%H%M%S`.jar

chmod 777 $PRO_DIR/$PRO.jar
BUILD_ID=dontKillMe
nohup $JDK_DIR/bin/java -jar  $PRO_DIR/$PRO.jar > temp.txt &

sleep 30
tail -n 100 $PRO_DIR/logs/$PRO.log
processCnt=`ps -ef|grep $PRO|grep -v grep|wc -l`
if [ $processCnt != 1 ]; then
    exit 1
fi

其中sleep 30后面的代码的含义是输出远程服务应用启动日志,如果启动失败可以从Jenkins看错误日志,而不需要再进应用服务器看失败日志

如果有需要配置邮件服务,或者定时自动部署,若无其他配置,点击保存

点击构建,第一次部署由于jenkins服务器需要下载相应的jar,会比较慢

5.在视图yui2下,创建一个新的任务,构建一个自由风格项目

rm -rf /usr/local/tomcat/yui2/yui-ui/admin
cp -r /usr/local/tomcat/yui2/save/admin
/usr/local/tomcat/yui2/yui-ui/admin

rm -rf /usr/local/tomcat/yui2/save/admin

/usr/local/nginx/sbin/nginx -s reload

 

6.自动化部署优化

 

由于项目是分布式部署,但是install了所有工程,所以可以选择性的选择需要打包的工程,从而节省时间,jenkins服务器带宽和目标服务器带宽都是限制传输速度的瓶颈,如果在同一个局域网内,传输速度将大大的加快。

使用内网传输,自动化部署需要的时间

Logo

更多推荐