Commit c4c95740 authored by tianye's avatar tianye

测试:封装msctl

parent 0d9ccbe2
...@@ -13,113 +13,20 @@ env_context=$(cat ${sc_dir}/install.ini.example |grep -v "^#"|grep -v "^$") ...@@ -13,113 +13,20 @@ env_context=$(cat ${sc_dir}/install.ini.example |grep -v "^#"|grep -v "^$")
echo "${env_context}">${sc_dir}/.env echo "${env_context}">${sc_dir}/.env
source ${sc_dir}/.env source ${sc_dir}/.env
ln -s ${sc_dir}/.env ${sc_dir}/install.ini 2>/dev/null ln -s ${sc_dir}/.env ${sc_dir}/install.ini 2>/dev/null
cd ${sc_dir}
#docker-compose的基础配置 #安装msctl管理命令
compose_files="-f docker-compose-base.yaml" cp msctl /usr/local/bin && chmod +x /usr/local/bin/msctl
ln -s /usr/local/bin/msctl /usr/bin/msctl 2>/dev/null
#修改es连接信息(默认-->外部) cd ${sc_dir}
edit_es_info(){ #--------------------部署-----------------------#
echo -e " 使用外部MQ"
echo -e " 即将修改配置...."
sleep 2
sed -i -e "s#host: es#host: ${ES_HOST}#g"\
-e "s#username: elastic#username: ${ES_USERNAME}#g"\
-e "s#password: changeme#password: ${ES_PASSWORD}#g"\
-e "s#httpPort: 9200#httpPort: ${ES_HTTP_PORT}#g"\
-e "s#tcpPort: 9300#tcpPort: ${ES_TCP_PORT}#g" \
-e "s#clusterName: elasticsearch-cluster#clusterName: ${ES_ClusterName}#g" ${APP_CONF_DIR}/application.yml
}
#修改mq连接信息(默认-->外部)
edit_mq_info(){
echo -e " 使用外部MQ"
echo -e " 即将修改配置...."
sleep 2
sed -i -e "s#host: rabbitmq01#host: ${MQ_HOST}#g"\
-e "s#username: admin#username: ${MQ_USERNAME}#g"\
-e "s#password: admin#password: ${MQ_PASSWORD}#g"\
-e "s#port: 5672#port: ${MQ_PORT}#g"\
-e "s#virtual-host: /#virtual-host: ${MQ_VHOST}#g" ${APP_CONF_DIR}/application.yml
}
#--------------------部署-----------------------
echo -e "----------安装向导------------" echo -e "----------安装向导------------"
echo -e "- all模式-->全部安装(主服务seatch-center+数据库+队列)" echo -e "- all模式-->全部安装(主服务seatch-center+数据库+队列)"
echo -e "- server模式-->只安装主服务search-center(请注意提前修改install.ini中外部db和mq的连接配置)" echo -e "- server模式-->只安装主服务search-center(请注意提前修改install.ini中外部db和mq的连接配置)"
echo -e "- controller模式-->安装主服务search-center+数据库 or 队列" echo -e "- controller模式-->安装主服务search-center+数据库 or 队列"
echo -e "------------------------------" echo -e "------------------------------"
PS3='请选择安装模式: ' PS3='请选择安装模式: '
msctl install_compose-files
select INSTALL_MODE in "all" "server" "controller"
do
case ${INSTALL_MODE} in
all)
echo "即将进入all模式,这将安装search-center全部服务与组件"
sleep 2
compose_files="${compose_files} -f docker-compose-es.yaml -f docker-compose-mq.yaml -f docker-compose-searchcenter.yaml"
break
;;
server)
echo "即将进入server模式,这将只安装search-center服务"
sleep 2
compose_files="${compose_files} -f docker-compose-searchcenter.yaml"
break
;;
controller)
echo "即将进入crontroller模式,这将根据install.ini中您的所配置的(es,mq)是否使用外部来选择安装"
sleep 2
break
;;
*)
echo "错误模式-请重新输入"
exit 127
esac
done
#是否使用外部组件
if [ ${INSTALL_MODE} == "all" ];then
echo -e "正在创建数据目录"
mkdir -p ${sc_dir}/data/{es_data,mq_data}
echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log
sudo docker-compose ${compose_files} up -d
elif [ ${INSTALL_MODE} == "server" ];then
echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log
edit_es_info
edit_mq_info
sudo docker-compose ${compose_files} up -d
elif [ ${INSTALL_MODE} == "controller" ];then
#判断es
if [ ${ES_ISUSE_STATUS} == 'false' ];then
echo -e "正在创建Elasticsearch数据目录"
mkdir -p ${sc_dir}/data/es_data
compose_files="${compose_files} -f docker-compose-es.yaml"
elif [ ${ES_ISUSE_STATUS} == 'true' ];then
edit_es_info
else
echo "es_isuse_status配置错误"
exit 127
fi
#判断mq
if [ ${MQ_ISUSE_STATUS} == 'false' ];then
echo -e "正在创建Elasticsearch数据目录"
mkdir -p ${sc_dir}/data/es_data
compose_files="${compose_files} -f docker-compose-mq.yaml"
elif [ ${MQ_ISUSE_STATUS} == 'true' ];then
edit_mq_info
else
ehco "mq_isuse_status配置错误"
exit 127
fi
echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log
#将所需要部署的组件ymal输出到文件
echo "${compose_files} -f docker-compose-searchcenter.yaml">${sc_dir}/compose_files
compose_files=$(cat ${sc_dir}/compose_files)
#echo ${compose_files}
sudo docker-compose ${compose_files} up -d
fi
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "安装过程出现错误,请查看相关配置..." echo "安装过程出现错误,请查看相关配置..."
......
#!/bin/bash
source ./install.ini
source ./install.sh
action=$1
target=$2
COMPOSE_FILE=$(cat ${sc_dir}/compose_files)
#修改es连接信息(默认-->外部)
edit_es_info(){
echo -e " 使用外部MQ"
echo -e " 即将修改配置...."
sleep 2
sed -i -e "s#host: es#host: ${ES_HOST}#g"\
-e "s#username: elastic#username: ${ES_USERNAME}#g"\
-e "s#password: changeme#password: ${ES_PASSWORD}#g"\
-e "s#httpPort: 9200#httpPort: ${ES_HTTP_PORT}#g"\
-e "s#tcpPort: 9300#tcpPort: ${ES_TCP_PORT}#g" \
-e "s#clusterName: elasticsearch-cluster#clusterName: ${ES_ClusterName}#g" ${APP_CONF_DIR}/application.yml
}
#修改mq连接信息(默认-->外部)
edit_mq_info(){
echo -e " 使用外部MQ"
echo -e " 即将修改配置...."
sleep 2
sed -i -e "s#host: rabbitmq01#host: ${MQ_HOST}#g"\
-e "s#username: admin#username: ${MQ_USERNAME}#g"\
-e "s#password: admin#password: ${MQ_PASSWORD}#g"\
-e "s#port: 5672#port: ${MQ_PORT}#g"\
-e "s#virtual-host: /#virtual-host: ${MQ_VHOST}#g" ${APP_CONF_DIR}/application.yml
}
#docker-compose的基础配置
install_compose-files(){
select INSTALL_MODE in "all" "server" "controller"
do
compose_files="-f docker-compose-base.yaml"
case ${INSTALL_MODE} in
all)
echo "即将进入all模式,这将安装search-center全部服务与组件"
sleep 2
compose_files="${compose_files} -f docker-compose-es.yaml -f docker-compose-mq.yaml -f docker-compose-searchcenter.yaml"
break
;;
server)
echo "即将进入server模式,这将只安装search-center服务"
sleep 2
compose_files="${compose_files} -f docker-compose-searchcenter.yaml"
break
;;
controller)
echo "即将进入crontroller模式,这将根据install.ini中您的所配置的(es,mq)是否使用外部来选择安装"
sleep 2
break
;;
*)
echo "错误模式-请重新输入"
exit 127
esac
done
#是否使用外部组件
if [ ${INSTALL_MODE} == "all" ];then
echo -e "正在创建数据目录"
mkdir -p ${sc_dir}/data/{es_data,mq_data}
echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log
elif [ ${INSTALL_MODE} == "server" ];then
echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log
edit_es_info
edit_mq_info
elif [ ${INSTALL_MODE} == "controller" ];then
#判断es
if [ ${ES_ISUSE_STATUS} == 'false' ];then
echo -e "正在创建Elasticsearch数据目录"
mkdir -p ${sc_dir}/data/es_data
compose_files="${compose_files} -f docker-compose-es.yaml -f docker-compose-searchcenter.yaml"
elif [ ${ES_ISUSE_STATUS} == 'true' ];then
edit_es_info
else
echo "es_isuse_status配置错误"
exit 127
fi
#判断mq
if [ ${MQ_ISUSE_STATUS} == 'false' ];then
echo -e "正在创建Elasticsearch数据目录"
mkdir -p ${sc_dir}/data/es_data
compose_files="${compose_files} -f docker-compose-mq.yaml -f docker-compose-searchcenter.yaml"
elif [ ${MQ_ISUSE_STATUS} == 'true' ];then
edit_mq_info
else
ehco "mq_isuse_status配置错误"
exit 127
fi
echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log
fi
#将所需要部署的组件ymal输出到文件
echo "${compose_files} ">${sc_dir}/compose_files
COMPOSE_FILE=$(cat ${sc_dir}/compose_files)
sudo docker-compose ${COMPOSE_FILE} up -d
}
function status(){
echo
cd ${sc_dir}
docker-compose ${COMPOSE_FILE} ps
}
function start(){
echo
cd ${sc_dir}
docker-compose ${COMPOSE_FILE} start
}
function stop(){
echo
cd ${sc_dir}
docker-compose ${COMPOSE_FILE} stop
}
function restart(){
echo
cd ${sc_dir}
docker-compose ${COMPOSE_FILE} stop
docker-compose ${COMPOSE_FILE} start
}
function uninstall(){
echo
cd ${sc_dir}
docker-compose ${COMPOSE_FILE} down
}
function main(){
case "${action}" in
status)
status
;;
start)
start
;;
stop)
stop
;;
restart)
restart
;;
uninstall)
uninstall
;;
install_compose-files)
install_compose-files
;;
*)
echo
cd ${sc_dir}
docker-compose ${COMPOSE_FILES} $@
;;
esac
}
main $@
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment