272 lines
9.7 KiB
Bash
272 lines
9.7 KiB
Bash
#!/bin/bash
|
||
#-------------------------------------------------------
|
||
CUR_PRGDIR=`pwd` #当前文件的路径
|
||
#读取配置文件
|
||
PROP_FILE="$CUR_PRGDIR/bifang_init_param.conf"
|
||
prop_value=""
|
||
#------------------------------------------------------------------------------functions
|
||
#echo $CUR_PRGDIR
|
||
function read_file(){
|
||
if [ $# != 2 ]
|
||
then
|
||
echo "usage: read_file [prop_name][must_input_flag]"
|
||
exit 0
|
||
fi
|
||
prop_name="$1"
|
||
must_input_flag="$2"
|
||
#echo "modify_file $prop_name $prop_value"
|
||
if [ -z "$(cat $PROP_FILE |grep $prop_name)" ]
|
||
then
|
||
prop_value=""
|
||
else
|
||
#正则匹配
|
||
temp=`sed -n "/^[ \t]*$prop_name[ \t]*[=].*/p" $PROP_FILE`
|
||
#截取对应的值,并去除首尾空格
|
||
prop_value=`echo ${temp#*=}| sed 's/^[ \t]*|[ \t]*$//g'|sed 's/\r//'`
|
||
fi
|
||
#判断是否为必填项
|
||
if [ "$must_input_flag" = "y" ]
|
||
then
|
||
if [ -z "$prop_value" ]
|
||
then
|
||
echo -n "${prop_name} can not be empty!"
|
||
exit 0
|
||
fi
|
||
fi
|
||
}
|
||
|
||
#-----------------------------------参数获取------------------------------------------------
|
||
read_file "db_host" "y"
|
||
db_host="$prop_value"
|
||
read_file "db_user" "y"
|
||
db_user="$prop_value"
|
||
read_file "db_pwd" "y"
|
||
db_pwd="$prop_value"
|
||
read_file "db_name" "y"
|
||
db_name="$prop_value"
|
||
#-----------------------------------------------------
|
||
read_file "api_reids_host" "y"
|
||
api_reids_host="$prop_value"
|
||
read_file "api_redis_port" "y"
|
||
api_redis_port="$prop_value"
|
||
#--------------------------------------------
|
||
read_file "syn_redis_host" "y"
|
||
syn_redis_host="$prop_value"
|
||
read_file "syn_redis_port" "y"
|
||
syn_redis_port="$prop_value"
|
||
#--------------------------------------------------
|
||
read_file "minio_url" "y"
|
||
minio_url="$prop_value"
|
||
read_file "minio_accessKey" "y"
|
||
minio_accessKey="$prop_value"
|
||
read_file "minio_secretKey" "y"
|
||
minio_secretKey="$prop_value"
|
||
read_file "minio_bucketName" "y"
|
||
minio_bucketName="$prop_value"
|
||
read_file "api_ip" "y"
|
||
api_ip="$prop_value"
|
||
read_file "api_port" "y"
|
||
api_port="$prop_value"
|
||
#-----------------------------------------------------------------------------------------
|
||
update_file(){
|
||
#--------------------------------修改相关文件参数---------------------------------------------------------
|
||
api_config=/home/docker/bifang/api/config/application-dev.properties
|
||
syn_config=/home/docker/bifang/syncredis/config/application.properties
|
||
webfocus_config=/home/docker/bifang/webfocus/config/application.properties
|
||
fqdn_config=/home/docker/categoryinit/config.properties
|
||
api_port_config=/home/docker/bifang/api/config/application.properties
|
||
#---------------------------------修改api配置文件------------------------
|
||
`sed -i "s%spring.datasource.url=.*%spring.datasource.url=jdbc:mysql://$db_host:3306/$db_name?rewriteBatchedStatements=true%g" $api_config`
|
||
`sed -i "s%spring.datasource.username=.*%spring.datasource.username=$db_user%g" $api_config`
|
||
`sed -i "s%spring.datasource.password=.*%spring.datasource.password=$db_pwd%g" $api_config`
|
||
|
||
`sed -i "s%spring.redis.host=.*%spring.redis.host=$api_reids_host%g" $api_config`
|
||
`sed -i "s%spring.redis.port=.*%spring.redis.port=$api_redis_port%g" $api_config`
|
||
|
||
`sed -i "s%server.port=.*%server.port=$api_port%g" $api_port_config`
|
||
#----------------------------------修改syn同步服务配置文件----------------------------------------------------------------------
|
||
`sed -i "s%spring.datasource.url=.*%spring.datasource.url=jdbc:mysql://$db_host:3306/$db_name?rewriteBatchedStatements=true%g" $syn_config`
|
||
`sed -i "s%spring.datasource.username=.*%spring.datasource.username=$db_user%g" $syn_config`
|
||
`sed -i "s%spring.datasource.password=.*%spring.datasource.password=$db_pwd%g" $syn_config`
|
||
|
||
`sed -i "s%spring.redis.host=.*%spring.redis.host=$syn_redis_host%g" $syn_config`
|
||
`sed -i "s%spring.redis.port=.*%spring.redis.port=$syn_redis_port%g" $syn_config`
|
||
#-----------------------------------修改映射服务配置文件---------------------------------------------------------------------------------------------
|
||
`sed -i "s%spring.datasource.url=.*%spring.datasource.url=jdbc:mysql://$db_host:3306/$db_name?rewriteBatchedStatements=true%g" $webfocus_config`
|
||
`sed -i "s%spring.datasource.username=.*%spring.datasource.username=$db_user%g" $webfocus_config`
|
||
`sed -i "s%spring.datasource.password=.*%spring.datasource.password=$db_pwd%g" $webfocus_config`
|
||
`sed -i "s%spring.redis.host=.*%spring.redis.host=$syn_redis_host%g" $webfocus_config`
|
||
`sed -i "s%spring.redis.port=.*%spring.redis.port=$syn_redis_port%g" $webfocus_config`
|
||
#------------------------------------修改服务分类配置文件--------------------------------------------------------------------------------------------------------------
|
||
`sed -i "s%url=.*true%url=jdbc:mysql://$db_host:3306/$db_name?rewriteBatchedStatements=true%g" $fqdn_config`
|
||
`sed -i "s%username=.*%username=$db_user%g" $fqdn_config`
|
||
`sed -i "s%password=.*%password=$db_pwd%g" $fqdn_config`
|
||
#-------------------------------------修改脚本配置参数---------------------------------------------------------------------------------------------------
|
||
#证书脚本参数修改
|
||
bifang_init=/home/docker/db_init/bifang_init.sh
|
||
#数据库创建脚本修改
|
||
create_db=/home/docker/db_init/create_db.sh
|
||
`sed -i "s%CACERT_URL=.*%CACERT_URL='http://$api_ip:$api_port/v1/policy/profile/trustedcacertobj'%g" $bifang_init`
|
||
`sed -i "s%KEYRING_URL=.*%KEYRING_URL='http://$api_ip:$api_port/v1/policy/profile/keyringobj'%g" $bifang_init`
|
||
`sed -i "s%TOKEN_URL=.*/v1%TOKEN_URL='http://$api_ip:$api_port/v1%g" $bifang_init`
|
||
|
||
`sed -i "s%DB_HOST=.*%DB_HOST=$db_host%g" $bifang_init`
|
||
`sed -i "s%DB_USER=.*%DB_USER=$db_user%g" $bifang_init`
|
||
`sed -i "s%DB_PWD=.*%DB_PWD=$db_pwd%g" $bifang_init`
|
||
`sed -i "s%DB_NAME=.*%DB_NAME=$db_name%g" $bifang_init`
|
||
#初始化数据库脚本修改
|
||
`sed -i "s%DB_HOST=.*%DB_HOST=$db_host%g" $create_db`
|
||
`sed -i "s%DB_USER=.*%DB_USER=$db_user%g" $create_db`
|
||
`sed -i "s%DB_PWD=.*%DB_PWD=$db_pwd%g" $create_db`
|
||
`sed -i "s%DB_NAME=.*%DB_NAME=$db_name%g" $create_db`
|
||
|
||
`sed -i 's/\r$//' $create_db`
|
||
`sed -i 's/\r$//' $bifang_init`
|
||
`sed -i 's/\r$//' $fqdn_config`
|
||
`sed -i 's/\r$//' $webfocus_config`
|
||
`sed -i 's/\r$//' $syn_config`
|
||
`sed -i 's/\r$//' $api_config`
|
||
`sed -i 's/\r$//' $api_port_config`
|
||
}
|
||
#----------------------------------------------------------
|
||
docker_start () {
|
||
#判断docker是否安装
|
||
which "docker" > /dev/null
|
||
if [ $? -eq 0 ]
|
||
then
|
||
echo "docker已存在,开始安装镜像文件"
|
||
dockerInit
|
||
else
|
||
#执行脚本文件安装docker
|
||
echo "开始安装docker"
|
||
dockerPath=/home/docker/docker_init/docker-deploy.sh
|
||
`cd /home/docker/docker_init/ && ./docker-deploy.sh`
|
||
|
||
which "docker" > /dev/null
|
||
if [ $? -eq 0 ]
|
||
then
|
||
echo "docker安装成功"
|
||
echo "开始安装docker镜像文件。。。"
|
||
dockerInit
|
||
fi
|
||
fi
|
||
}
|
||
|
||
dockerInit(){
|
||
|
||
docker_count=`ps -ef|grep docker|egrep -v grep`
|
||
if [ $? -ne 0 ];then
|
||
echo "启动docker服务"
|
||
`systemctl stop docker`
|
||
`systemctl start docker`
|
||
fi
|
||
|
||
#centos-bifang镜像文件
|
||
centos=`docker images|grep centos* `
|
||
if [ $? -ne 0 ]
|
||
then
|
||
echo "导入centos-bifang镜像文件"
|
||
`cd /home/docker/centos/ && docker load -i centos-bifang.tar`
|
||
fi
|
||
|
||
jdk=`docker images|grep jdk* `
|
||
if [ $? -ne 0 ]
|
||
then
|
||
echo "安装jdk镜像文件"
|
||
`cd /home/docker/jdk && docker build -t jdk:1.8.0_73 .`
|
||
fi
|
||
|
||
nginx=`docker images|grep nginx* `
|
||
if [ $? -ne 0 ]
|
||
then
|
||
echo "安装nginx镜像文件"
|
||
`cd /home/docker/bifang/nginx/ && docker load -i nginx.tar`
|
||
fi
|
||
echo "安装并启动bifang-html镜像文件"
|
||
`cd /home/docker/bifang/bifang-html/ && ./deploy-bifangHtml.sh deployImagesAndStartContainer`
|
||
echo "安装并启动api服务"
|
||
`cd /home/docker/bifang/api/ && ./deploy-api.sh deployImagesAndStartContainer`
|
||
echo "安装并启动syncredis同步服务"
|
||
`cd /home/docker/bifang/syncredis/ && ./deploy-syncredis.sh deployImagesAndStartContainer`
|
||
echo "安装并启动mapping-subid-ip映射服务"
|
||
`cd /home/docker/bifang/webfocus/ && ./deploy-webfocus.sh deployImagesAndStartContainer`
|
||
category_init
|
||
}
|
||
|
||
unzip_inIt(){
|
||
echo "开始解压"
|
||
unzip docker.zip -d /home
|
||
if [ $? -eq 0 ]
|
||
then
|
||
echo "解压完成"
|
||
#.sh文件添加执行权限
|
||
`find /home/docker/* -name "*.sh" -type f -exec chmod 755 \{\} \;`
|
||
config
|
||
else
|
||
echo "解压失败"
|
||
fi
|
||
}
|
||
|
||
update_minio(){
|
||
murl="update t_sys_cfg set cfg_value='$minio_url' where cfg_name='minio_url';update t_sys_cfg set cfg_value='$minio_accessKey' where cfg_name='minio_accessKey';update t_sys_cfg set cfg_value='$minio_secretKey' where cfg_name='minio_secretKey';update t_sys_cfg set cfg_value='$minio_bucketName' where cfg_name='minio_bucketName'"
|
||
db_m=`mysql -h$db_host -u$db_user -p$db_pwd $db_name -e "${murl}"`
|
||
}
|
||
|
||
|
||
category_init(){
|
||
update_minio
|
||
echo "证书初始化"
|
||
`cd /home/docker/db_init && ./bifang_init.sh`
|
||
echo "证书初始化执行完成"
|
||
echo "分类服务初始化"
|
||
`cd /home/docker/categoryinit && java -jar categoryInit.jar`
|
||
echo "脚本执行完成"
|
||
}
|
||
|
||
|
||
db_init(){
|
||
dbnoit=`mysql -h$db_host -u$db_user -p$db_pwd -e 'use mysql'`
|
||
if [ $? -eq 0 ];then
|
||
db_care=`mysql -h$db_host -u$db_user -p$db_pwd -e "use $db_name"`
|
||
if [ $? -eq 0 ];then
|
||
docker_start
|
||
else
|
||
echo "创建$db_name数据库"
|
||
#创建数据库
|
||
db_in=`cd /home/docker/db_init/ && ./create_db.sh`
|
||
echo "$db_in"
|
||
docker_start
|
||
fi
|
||
else
|
||
echo "请调整bifang_init_param.conf数据库参数配置"
|
||
fi
|
||
|
||
}
|
||
|
||
config(){
|
||
echo "开始检查bifang_init_param.conf配置文件参数"
|
||
update_file
|
||
if [ $? -eq 0 ];then
|
||
echo "配置参数调整完成"
|
||
db_init
|
||
else
|
||
echo "请调整bifang_init_param.conf数据库参数配置"
|
||
fi
|
||
}
|
||
|
||
if [ -d "/home/docker" ];
|
||
then
|
||
read -t 30 -n 1 -p "docker目录已存在,请确认是否删除后,重新解压文件 y/n :" ziInit
|
||
echo -e "\n"
|
||
if [ $ziInit = "y" ];then
|
||
`rm -rf /home/docker`
|
||
unzip_inIt
|
||
else
|
||
#.sh文件添加执行权限
|
||
`find /home/docker/* -name "*.sh" -type f -exec chmod 755 \{\} \;`
|
||
config
|
||
fi
|
||
else
|
||
unzip_inIt
|
||
fi
|