update[deploy]: 进一步完善deploy。

1. 目前deploy支持dep阶段的代码部署
2. 目前deploy不支持prod阶段的代码部署。
This commit is contained in:
Junling Bu
2018-05-14 09:22:01 +08:00
parent 2abc346310
commit 5c5cdd093e
13 changed files with 228 additions and 130 deletions

View File

@@ -39,14 +39,24 @@
http://xxx.xxx.xxx.xxx:8080/#/login
```
7. 自动上传脚本
7. 部署脚本
为了简化步骤1和步骤2完成了util/upload.sh脚本开发者需要设置相应的云主机IP和密钥文件路径。
该脚本会自动把当前项目不同模块下的最终部署文件复制到deploy文件夹中然后上传到云主机。
注意:
> 上传脚本没有自动做Spring Boot项目打包和Vue项目打包工作
为了简化步骤1和步骤2完成了deploy/util/upload.sh上传脚本和deploy/util/lazy.sh部署脚本
注意:
> * 开发者需要在deploy/util/upload.sh和deploy/util/lazy.sh中设置相应的云主机登录账号和密钥文件路径。
> * 开发者需要在deploy/util/reset.sh设置云主机的MySQL的root登录账户。
> * 请先执行上述1-6步骤确保部署环境成功。
* 上传脚本
该脚本会自动把当前项目不同模块下的最终部署文件复制到deploy文件夹中然后上传到云主机。
该上传脚本没有自动做Spring Boot项目打包和Vue项目打包工作
* 部署脚本
该脚本会编译项目再上传deploy文件最后ssh登录远程主机执行bin下面的deploy.sh脚本。
如果开发者需要先编译项目再上传可以运行util/lazy.sh。
注意,运行命令必须在项目主目录中,类似如下命令:
```bash
cd litemall

View File

@@ -3,8 +3,7 @@
# 请注意
# 1. 本脚本的作用是停止当前Spring Boot应用然后再次部署
# 2. 解压dist.tar到/home/ubuntu/deploy/litemall-admin/dist
# 而这个目录也正是tomcat配置静态文件目录的路径见1.5.3.5节)
# 而这个目录也正是tomcat或者nginx所配置静态文件目录的路径见1.5.3.5节)
#部署litemall-admin静态文件应用
cd /home/ubuntu/deploy/litemall-admin
@@ -29,6 +28,6 @@ sudo /etc/init.d/litemall-os-api restart
sudo /etc/init.d/litemall-wx-api restart
sudo /etc/init.d/litemall-admin-api restart
# tomcat8服务启动
sudo service tomcat8 stop
sudo service tomcat8 start
# 如果静态文件是通过tomcat来服务tomcat8服务最好也再启动
#sudo service tomcat8 stop
#sudo service tomcat8 start

View File

@@ -6,16 +6,23 @@
# 3.调用deploy.sh启动服务
# 注意由于1和2的原因请仅在开发测试阶段使用本脚本
# 重置数据库
# i. 请在`XXXXXX`处设置相应的root密码
# ii. 同时请注意root密码放在脚本是非常危险的因此这里仅仅是用于开发测试阶段。
ROOT=root
PASSWORD=
if test -z "$PASSWORD"
then
echo "请设置云主机MySQL的root账号密码"
exit -1
fi
cd /home/ubuntu/deploy/litemall-db
cat litemall_schema.sql > db.sql
cat litemall.sql >> db.sql
mysql -h localhost -u root -pXXXXXX < db.sql
mysql -h localhost -u $ROOT -p$PASSWORD < db.sql
rm db.sql
cd /home/ubuntu/deploy/litemall-db
# 删除storage文件夹内文件
cd /home/ubuntu/deploy/litemall-os-api/storage

View File

@@ -1,2 +1,2 @@
RUN_ARGS=--spring.profiles.active=prod
RUN_ARGS=--spring.profiles.active=dep
JAVA_OPTS=

View File

@@ -1,2 +1,2 @@
RUN_ARGS=--spring.profiles.active=prod
RUN_ARGS=--spring.profiles.active=dep
JAVA_OPTS=

View File

@@ -1,2 +1,2 @@
RUN_ARGS=--spring.profiles.active=prod
RUN_ARGS=--spring.profiles.active=dep
JAVA_OPTS=

View File

@@ -2,12 +2,33 @@
# 本脚本的作用是
# 1. 编译打包Spring Boot应用
# 2. 编译litemall-adminy应用
# 2. 编译litemall-admin应用
# 3. 调用upload.sh上传
# 4. ssh远程登录云主机运行deploy/bin/deploy.sh脚本
# 注意运行脚本必须是在litemall主目录下,类似如下命令
# cd litemall
# ./deploy/util/lazy.sh
# 请设置云主机的IP地址和账户
# 例如 ubuntu@122.152.206.172
REMOTE=
# 请设置本地SSH私钥文件id_rsa路径
# 例如 /home/litemall/id_rsa
ID_RSA=
if test -z "$REMOTE"
then
echo "请设置云主机登录IP地址和账户"
exit -1
fi
if test -z "$ID_RSA"
then
echo "请设置云主机登录IP地址和账户"
exit -1
fi
echo $PWD
mvn clean
mvn package
@@ -17,8 +38,14 @@ cd ./litemall-admin
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 安装node项目依赖环境
cnpm install
cnpm run build:prod
cnpm run build:dep
cd ..
echo $PWD
./deploy/util/upload.sh
# 远程登录云主机并执行deploy脚本
ssh $REMOTE -i $ID_RSA << eeooff
sudo ./deploy/bin/deploy.sh
exit
eeooff

View File

@@ -6,10 +6,24 @@
# 3. util/upload.sh脚本是运行在开发机中bin/deploy.sh脚本是运行在云主机中
# 4. 这是一个简单的脚本,开发者可以按照自己需求修改
# 请设置云主机IP地址
CVM=XXX.XXX.XXX.XXX
# 请设置本地SSH私钥文件id_rsa
ID_RSA=/XXX/id_rsa
# 请设置云主机登录IP地址和账户
# 例如 ubuntu@122.152.206.172
REMOTE=
# 请设置本地SSH私钥文件id_rsa路径
# 例如 /home/litemall/id_rsa
ID_RSA=
if test -z "$REMOTE"
then
echo "请设置云主机登录IP地址和账户"
exit -1
fi
if test -z "$ID_RSA"
then
echo "请设置云主机登录IP地址和账户"
exit -1
fi
# 复制三个Spring Boot应用
# 需要注意的是target目录里面存在两种jar一种是当前模块纯编译代码的jar另外一种是包含依赖库的可执行jar
@@ -26,4 +40,4 @@ cp -f ./litemall-db/sql/litemall_schema.sql ./deploy/litemall-db/litemall_schem
cp -f ./litemall-db/sql/litemall.sql ./deploy/litemall-db/litemall.sql
# 上传云主机
scp -i $ID_RSA -r ./deploy ubuntu@$CVM:/home/ubuntu/
scp -i $ID_RSA -r ./deploy $REMOTE:/home/ubuntu/