长亮科技 2021 年 5 月 7 日
业绩评价系统部署脚本
基于微服务架构的业绩评价系统部署脚本文档
微服务批量部署脚本
服务清单
| 服务名 | JRA包 |
|---|---|
| PCMC | clhd-pcmc.jar |
| VALUE-SET | value-set.jar |
| KPI | kpi-web.jar |
| KPI.ENGINE | kpi-engine-calc.jar |
| KPI.ADMIN | kpi-engine-admin.jar |
| PM | sun-pm-boot.jar |
| AP.ENGINE | sunpm-engine-ap.jar |
| PD.ENGINE | sunpm-engine-pd.jar |
| SUN-JOB | sun-job-admin.jar |
| PTE | 前台deploy文件 |
功能
- 整体启动:全部启动—>监控各个服务启动情况—>全部服务启动完成—>展示启动情况
#!/bin/bash
base_dir=`pwd`
server_name_array=("clhd-pcmc" "value-set" "kpi-web" "kpi-engine-calc" "kpi-engine-admin" "sun-pm-boot" "sunpm-engine-ap" "sunpm-engine-pd")
for dir in $(ls ${base_dir}/realease)
do
if [ -d ${base_dir}/realease/${dir} ]; then
flag=0
for file in $(ls ${base_dir}/realease/${dir}/target)
do
server_name=$(basename $file .jar)
if echo "${server_name_array[@]}" | grep -w "${server_name}" &>/dev/null; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
sh ${base_dir}/realease/${dir}/bin/startup.sh
fi
fi
done - 整体停止:全部停止—>展示停止情况
#!/bin/bash
base_dir=`pwd`
server_name_array=("clhd-pcmc" "value-set" "kpi-web" "kpi-engine-calc" "kpi-engine-admin" "sun-pm-boot" "sunpm-engine-ap" "sunpm-engine-pd")
for dir in $(ls ${base_dir}/realease)
do
if [ -d ${base_dir}/realease/${dir} ]; then
flag=0
for file in $(ls ${base_dir}/realease/${dir}/target)
do
server_name=$(basename $file .jar)
if echo "${server_name_array[@]}" | grep -w "${server_name}" &>/dev/null; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
sh ${base_dir}/realease/${dir}/bin/shutdown.sh
fi
fi
done
```
3. 单服务启动:单服务启动-->展示启动情况
```bash
#!/bin/bash
base_dir=`pwd`
for dir in $(ls ${base_dir}/realease)
do
if [ -d ${base_dir}/realease/${dir} ]; then
flag=0
for file in $(ls ${base_dir}/realease/${dir}/target)
do
server_name=$(basename $file .jar)
if [ "${1}" == "${sever_name}" ]; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
sh ${base_dir}/realease/${dir}/bin/startup.sh
fi
fi
done
```
4. 单服务停止:单服务停止-->展示停止情况
```bash
#!/bin/bash
base_dir=`pwd`
for dir in $(ls ${base_dir}/realease)
do
if [ -d ${base_dir}/realease/${dir} ]; then
flag=0
for file in $(ls ${base_dir}/realease/${dir}/target)
do
server_name=$(basename $file .jar)
if [ "${1}" == "${sever_name}" ]; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
sh ${base_dir}/realease/${dir}/bin/shutdown.sh
fi
fi
done
```
5. 全量版本更新
1. 只替换jar包:整体停止-->替换jar包-->整体启动
```bash
#!/bin/bash
sh allshutdown.sh
server_name_array=("clhd-pcmc" "value-set" "kpi-web" "kpi-engine-calc" "kpi-engine-admin" "sun-pm-boot" "sunpm-engine-ap" "sunpm-engine-pd")
declare -A replace_file_path_array
replace_file_server_name_array=()
base_dir=`pwd`
##获取每个服务对应的更新jar包路径
index=1
for dir in $(ls ${base_dir}/develop)
do
if [ -d $base_dir/develop/$dir ]; then
flag=0
for file in $(ls $base_dir/develop/$dir/target)
do
server_name=$(basename $file .jar)
if echo "${server_name_array[@]}" | grep -w "${server_name}" &>/dev/null; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
replace_file_path_array[${server_name}]=`pwd`"/"${server_name}".jar"
replace_file_server_name_array[$index]=${server_name}
index=$[index+1]
fi
fi
done
echo update server: ${replace_file_server_name_array[*]}
##替换jar包
for dir in $(ls ${base_dir}/realease)
do
if [ -d $dir/realease/$dir ]; then
flag=0
for file in $(ls ${base_dir}/realease/${dir}/target)
do
server_name=$(basename $file .jar)
if echo "${server_name_array[@]}" | grep -w "${server_name}" &>/dev/null; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
echo copy file ${replace_file_path_array[${server_name}]} to ${base_dir}/realease/${dir}/target
fi
fi
done
read -p "Confirm replaced file (Y/N): " confirm
confirm=$(echo $confirm | tr [a-z] [A-Z])
for dir in $(ls ${base_dir}/realease)
do
if [ -d $dir/realease/$dir ]; then
flag=0
for file in $(ls ${base_dir}/realease/${dir}/target)
do
server_name=$(basename $file .jar)
if echo "${server_name_array[@]}" | grep -w "${server_name}" &>/dev/null; then
flag=1
fi
done
if [[ ${flag} == 1 ]] && [[ "${confirm}" == "Y" ]]; then
mv -f ${base_dir}/realease/${dir}/target/${server_name}.jar ${base_dir}/realease/${dir}/target/${server_name}_bak.jar
cp ${replace_file_path_array[${server_name}]} ${base_dir}/realease/${dir}/target
echo copy file ${replace_file_path_array[${server_name}]} to ${base_dir}/realease/${dir}/target
fi
fi
done
if [ "${confirm}" == "Y" ]; then
echo update success
sh allstartup.sh
fi
```
2. 替换配置文件+jar包:整体停止-->替换conf文件-->替换jar包-->整体启动
```other
```
6. 单个服务版本更新
1. 只替换jar包:单服务停止-->替换jar包-->单服务启动
```bash
#!/bin/bash
sh singleshutdown.sh ${1}
replace_file_path_array=()
cd realease
##获取服务对应的更新jar包路径
for dir in $(ls)
do
if [ -d $dir ]; then
cd ${dir}/target
flag=0
for file in $(ls)
do
server_name=$(basename $file .jar)
if [ "${1}" == "${server_name}" ]; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
replace_file_path_array[${server_name}]=`pwd`"/"${server_name}".jar"
fi
cd ../../
fi
done
##替换jar包
cd ../develop
for dir in $(ls)
do
if [ -d $dir ]; then
cd ${dir}/target
flag=0
for file in $(ls)
do
server_name=$(basename $file .jar)
if ["${1}" == "${server_name}" ]; then
flag=1
fi
done
if [ ${flag} == 1 ]; then
mv -f ${server_name}.jar ${server_name}_bak.jar
mv ${replace_file_path_array[${server_name}]} .
fi
cd ../../
fi
done
sh singlestartup.sh ${1}
```
2. 替换配置文件+jar包:单服务停止-->替换conf文件-->替换jar包-->单服务启动
```other
```
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者: OnlyWaitY 发表日期:2021 年 5 月 7 日