This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
tsg-tsg-deploy/api/docker_init.sh
2019-10-30 17:57:43 +08:00

272 lines
9.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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