前言
之前的文章有讲解到如何安装jenkins,部署boot以及vue。由于团队项目的增加,服务器不够使用,增加了测试服务器后需要能够远程部署的条件。
想法
jenkins+ssh+git远程部署项目并且启动。
使用
-
接下来就是需要安装Publish Over SSH
安装Publish Over SSH -
配置远程服务器
配置远程服务器
系统管理-系统设置-Publish over SSH
配置好服务器内容
Passphrase 服务器的密码
Path to key 连接远程服务器密钥文件的路径
Key 密钥文件的内容
Name 自定义服务器名
HostName 服务器IP外网地址
UserName 服务器用户名
Remote Directory 传输文件的目录
-
创建一个maven项目
配置git -
配置构建环境
配置构建环境
配置构建环境 - 配置构建完成后执行脚本
这一步主要是打包vue,然后将编译完成的保压缩
#!/bin/bash
echo "Execute vue Start"
echo $PATH
cd venice-vue
node -v
npm -v
npm i
npm run build:prod
cd dist
tar -zcvf dist.tar.gz *
配置构建完成后执行脚本
到这边在本服务器上的代码算是构建完成了。现在我们需要把本地打包的代码发布到远程服务器。
-
发布vue代码
发布vue代码
填写字段
Source files 项目构建后的目录
Remove prefix 去前缀
Remote directoty 发布的目录
Exec command 发布完执行的命令,我这边写的是发布完会重启tomcat
分享我的重启boot的执行脚本,会备份当前版本包
服务器目录结构
- bak 存放备份应用包
- jar 存放当前运行jar包
- update 存放shell脚本以及服务上传过来的最新的版本包
- www 存放前端页面
RESOURCE_NAME=dist.tar.gz
RESOURCE_PATH=/home/plusesb/onedis
#备份包
echo "----备份包----"
cp $RESOURCE_PATH/update/dist.tar.gz $RESOURCE_PATH/bak/dist.tar.gz.`date +%Y%m%d%H%M%S`
#清理文件
echo "----清理文件----"
rm -rf $RESOURCE_PATH/www/*
#解压文件
echo "----解压文件----"
mv $RESOURCE_PATH/update/dist.tar.gz $RESOURCE_PATH/www/
cd $RESOURCE_PATH/www/
tar -xvzf $RESOURCE_PATH/www/dist.tar.gz
-
发布jar包
发布jar包
#!/bin/sh
RESOURCE_NAME=onedis-admin-1.0.jar
RESOURCE_PATH=/home/plusesb/onedis
#备份jar包
cp $RESOURCE_PATH/update/venice-admin-1.0.jar $RESOURCE_PATH/bak/$RESOURCE_NAME.`date +%Y%m%d%H%M%S`
#清理文件
mv $RESOURCE_PATH/update/venice-admin-1.0.jar $RESOURCE_PATH/jar/$RESOURCE_NAME
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'App is running.'
else
echo 'App is NOT running.'
fi
rm -f tpid
nohup java -jar $RESOURCE_PATH/jar/$RESOURCE_NAME --spring.profiles.active=test > $RESOURCE_PATH/jar/admin-log.file 2>&1 &
echo $! > tpid
到此,我们就完整的实现了远程发布版本包的功能。接下来可能会选择通过git打tag的形式触发打包功能。
网友评论