Commit 8673bb24 authored by tianye's avatar tianye

dev2.0 -frist version

parent 52951157
version: '3'
services:
elasticsearch:
image: ${ES_IMAGES}
restart: always
hostname: es-01
container_name: es
volumes:
- es_data:/usr/share/elasticsearch/data
- ./plugins:/usr/share/elasticsearch/plugins
- ./conf/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
ports:
- '9200:9200' #java、集群通信端口
- '9300:9300' #http通信端口
privileged: true #环境变量
networks:
sc_net:
ipv4_address: 172.16.220.15
rabbitmq:
image: rabbitmq:3.7.28-management-alpine
restart: always
hostname: rabbitmq01
container_name: rabbitmq01
ports:
- "5672:5672"
- "15672:15672"
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=admin
volumes:
- mq_data:/var/lib/rabbitmq
privileged: true
networks:
sc_net:
ipv4_address: 172.16.220.17
health-cloud-search-center:
image: harbor.hw.jiankangyouyi.com:5000/search-center-public/search-center:v1.0
container_name: health-cloud-search-center
environment:
JAVA_OPTS:
stdin_open: true
volumes:
- ./secret_key:/run/secret/key:ro
- ./conf/app/application.yml:/conf/application.yml
tty: true
ports:
- "8004:9001"
depends_on:
- elasticsearch
- rabbitmq
networks:
sc_net:
ipv4_address: 172.16.220.16
volumes:
es_data:
driver_opts:
type: none
device: ./data/es_data/
o: bind
mq_data:
driver_opts:
type: none
device: ./data/mq_data/
o: bind
networks:
sc_net:
ipam:
driver: default
config:
- subnet: "172.16.220.0/24"
logging:
config: classpath:log/log4j2-qa.xml
spring:
mail:
host: smtpdm.aliyun.com # 邮件配置说明 https://docs.infra.jiankangyouyi.com/developers/healthcloud/basic-components/mail
username: alarm-qa@developer.zhidoushi.cn
password: UaYubo4YA5PSdw0R # jasypt加密
default-encoding: UTF-8
port: 465
properties:
mail:
debug: true
smtp:
auth: true
starttls: true
required: true
socketFactory:
port: 465
class: javax.net.ssl.SSLSocketFactory
fallback: false
rabbitmq:
host: rabbitmq01
port: 5672
username: admin
password: admin
virtual-host: /
publisher-confirm-type: simple
health-cloud:
sentry:
enabled: true # 开关 消息发送与api注册都将关闭,api注册可以独立控制,根据api.scan.register-request-mapping: false
es:
host: es
schema: http
tcpPort: 9300
clusterName: elasticsearch-cluster
httpPort: 9200
auth:
enable: true
username: elastic
password: changeme
env-of-index: qa
management:
health:
elasticsearch:
enabled: false
endpoints:
web:
exposure:
include: '*'
metrics:
tags:
application: ${spring.application.name}
distribution:
percentiles-histogram:
recommend:
timer:
recall: true
http:
server:
requests: true
version: '3' version: '3'
services: services:
elasticsearch:
image: elasticsearch:6.8.23
restart: always
hostname: es-01
container_name: es
volumes:
- es_data:/usr/share/elasticsearch/data
- ./plugins:/usr/share/elasticsearch/plugins
- ./conf/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
ports:
- '9200:9200' #java、集群通信端口
- '9300:9300' #http通信端口
privileged: true #环境变量
networks:
sc_net:
ipv4_address: 172.16.220.15
health-cloud-search-center: health-cloud-search-center:
image: harbor.hw.jiankangyouyi.com:5000/search-center-public/search-center:v1.0 image: harbor.hw.jiankangyouyi.com:5000/search-center-public/search-center:v1.0
container_name: health-cloud-search-center container_name: health-cloud-search-center
...@@ -29,25 +9,12 @@ services: ...@@ -29,25 +9,12 @@ services:
volumes: volumes:
- ./secret_key:/run/secret/key:ro - ./secret_key:/run/secret/key:ro
- ./conf/app/application.yml:/conf/application.yml - ./conf/app/application.yml:/conf/application.yml
- sc_log:/logs
tty: true tty: true
ports: ports:
- "8004:9001" - "8004:9001"
depends_on: #depends_on:
- elasticsearch #- elasticsearch
#- rabbitmq
networks: networks:
sc_net: - sc_net
ipv4_address: 172.16.220.16
volumes:
es_data:
driver_opts:
type: none
device: /docker/es/data
o: bind
networks:
sc_net:
ipam:
driver: default
config:
- subnet: "172.16.220.0/24"
#/bin/bash
#镜像相关
SC_IMAGE_URL=harbor.hw.jiankangyouyi.com:5000/search-center-public/
SC_IMAGE_NAME=search-center
SC_IMAGE_VERSION=v1.0
#部署目录
DEPLOY_DIR=/home/tianye/
#search-center配置文件目录
APP_CONF_DIR=${DEPLOY_DIR}/search-center/conf/app
#是否使用外部es
ES_ISUSE_STATUS=false
#es默认账号密码
ES_HOST=es
ES_USERNAME=elastic
ES_PASSWORD=changeme
ES_ClusterName=elasticsearch-cluster
ES_HTTP_PORT=9200
ES_TCP_PORT=9300
#是否使用外部rabbitmq
MQ_ISUSE_STATUS=false
#mq默认账号密码
MQ_HOST=rabbitmq01
MQ_PORT=5672
MQ_VHOST=/
MQ_USERNAME=admin
MQ_PASSWORD=admin
#!/bin/bash
source ./install.ini
sc_dir=${DEPLOY_DIR}/search-center
if [ ! -d ${sc_dir} ];then
sudo cp -rf search-center ${sc_dir}
fi
#将配置文件存入环境变量文件,使其全局生效
sudo cp ./install.ini ${sc_dir}/install.ini.example
#sudo echo '' >${sc_dir}/.env
env_context=$(cat ${sc_dir}/install.ini.example |grep -v "^#"|grep -v "^$")
echo "${env_context}">${sc_dir}/.env
source ${sc_dir}/.env
sudo ln -s ${sc_dir}/.env ${sc_dir}/install.ini 2>/dev/null
#是否使用外部组件
if [ ${ES_ISUSE_STATUS} != 'false' ];then
echo -e " 使用外部ES\n即将修改配置...."
grep -A 10 -w "es:" ${APP_CONF_DIR}/application.yml | \
sed -e "s#host: .*#host: ${ES_HOST}#g"\
-e "s#username: .*#username: ${ES_USERNAME}#g"\
-e "s#password: .*#password: ${ES_PASSWORD}#g"\
-e "s#httpPort: .*#httpPort: ${ES_HTTP_PORT}#g"\
-e "s#tcpPort: .*#tcpPort: ${ES_TCP_PORT}#g"
fi
echo ${MQ_ISUSE_STATUS}
if [ ${MQ_ISUSE_STATUS} != 'false' ];then
echo -e " 使用外部MQ\n即将修改配置...."
grep -A 6 -w "rabbitmq:" ${APP_CONF_DIR}/application.yml | \
sed -e "s#host: .*#host: ${MQ_HOST}#g"\
-e "s#username: .*#username: ${MQ_USERNAME}#g"\
-e "s#password: .*#password: ${MQ_PASSWORD}#g"\
-e "s#virtual-host: .*#virtual-host: ${MQ_VHOST}#g"
fi
...@@ -3,10 +3,11 @@ action=$1 ...@@ -3,10 +3,11 @@ action=$1
target=$2 target=$2
source ~/.hcrc 2>/dev/null || echo "" source ~/.hcrc 2>/dev/null || echo ""
sc_dir=${sc_dir:-/ops_project} app_sc_dir=${app_sc_dir:-/ops_project/Health-cloud-server/search-center}
source ${sc_dir}/install.ini source ${app_sc_dir}/install.ini
COMPOSE_FILE=$(cat ${sc_dir}/compose_files 2>/dev/null || echo "") #DB-compose文件DB_DEPLOY_DIR
COMPOSE_FILE=$(cat ${app_sc_dir}/compose_files 2>/dev/null || echo "")
#修改es连接信息(默认-->外部) #修改es连接信息(默认-->外部)
edit_es_info(){ edit_es_info(){
...@@ -52,18 +53,18 @@ function usage() { ...@@ -52,18 +53,18 @@ function usage() {
install_compose-files(){ install_compose-files(){
select INSTALL_MODE in "all" "server" "controller" select INSTALL_MODE in "all" "server" "controller"
do do
compose_files="-f docker-compose-base.yaml" compose_files="-f ${DB_DEPLOY_DIR}/docker-compose-base.yaml"
case ${INSTALL_MODE} in case ${INSTALL_MODE} in
all) all)
echo "即将进入all模式,这将安装search-center全部服务与组件" echo "即将进入all模式,这将安装search-center全部服务与组件"
sleep 2 sleep 2
compose_files="${compose_files} -f docker-compose-es.yaml -f docker-compose-mq.yaml -f docker-compose-searchcenter.yaml" compose_files="${compose_files} -f ${DB_DEPLOY_DIR}/docker-compose-es.yaml -f ${DB_DEPLOY_DIR}/docker-compose-mq.yaml -f ${app_sc_dir}/docker-compose-searchcenter.yaml"
break break
;; ;;
server) server)
echo "即将进入server模式,这将只安装search-center服务" echo "即将进入server模式,这将只安装search-center服务"
sleep 2 sleep 2
compose_files="${compose_files} -f docker-compose-searchcenter.yaml" compose_files="${compose_files} -f ${app_sc_dir}/docker-compose-searchcenter.yaml"
break break
;; ;;
controller) controller)
...@@ -85,20 +86,20 @@ install_compose-files(){ ...@@ -85,20 +86,20 @@ install_compose-files(){
#是否使用外部组件 #是否使用外部组件
if [ ${INSTALL_MODE} == "all" ];then if [ ${INSTALL_MODE} == "all" ];then
echo -e "正在创建数据目录" echo -e "正在创建数据目录"
mkdir -p ${sc_dir}/data/{es_data,mq_data} mkdir -p ${app_sc_dir}/data/{es_data,mq_data}
echo -e "正在创建日志目录" echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log mkdir -p ${app_sc_dir}/log
elif [ ${INSTALL_MODE} == "server" ];then elif [ ${INSTALL_MODE} == "server" ];then
echo -e "正在创建日志目录" echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log mkdir -p ${app_sc_dir}/log
edit_es_info edit_es_info
edit_mq_info edit_mq_info
elif [ ${INSTALL_MODE} == "controller" ];then elif [ ${INSTALL_MODE} == "controller" ];then
#判断es #判断es
if [ ${ES_ISUSE_STATUS} == 'false' ];then if [ ${ES_ISUSE_STATUS} == 'false' ];then
echo -e "正在创建Elasticsearch数据目录" echo -e "正在创建Elasticsearch数据目录"
mkdir -p ${sc_dir}/data/es_data mkdir -p ${app_sc_dir}/data/es_data
compose_files="${compose_files} -f docker-compose-es.yaml -f docker-compose-searchcenter.yaml" compose_files="${compose_files} -f ${DB_DEPLOY_DIR}/docker-compose-es.yaml -f ${app_sc_dir}/docker-compose-searchcenter.yaml"
elif [ ${ES_ISUSE_STATUS} == 'true' ];then elif [ ${ES_ISUSE_STATUS} == 'true' ];then
edit_es_info edit_es_info
else else
...@@ -108,8 +109,8 @@ install_compose-files(){ ...@@ -108,8 +109,8 @@ install_compose-files(){
#判断mq #判断mq
if [ ${MQ_ISUSE_STATUS} == 'false' ];then if [ ${MQ_ISUSE_STATUS} == 'false' ];then
echo -e "正在创建Elasticsearch数据目录" echo -e "正在创建Elasticsearch数据目录"
mkdir -p ${sc_dir}/data/es_data mkdir -p ${app_sc_dir}/data/es_data
compose_files="${compose_files} -f docker-compose-mq.yaml -f docker-compose-searchcenter.yaml" compose_files="${compose_files} -f ${DB_DEPLOY_DIR}/docker-compose-mq.yaml -f ${app_sc_dir}/docker-compose-searchcenter.yaml"
elif [ ${MQ_ISUSE_STATUS} == 'true' ];then elif [ ${MQ_ISUSE_STATUS} == 'true' ];then
edit_mq_info edit_mq_info
else else
...@@ -117,38 +118,38 @@ install_compose-files(){ ...@@ -117,38 +118,38 @@ install_compose-files(){
exit 127 exit 127
fi fi
echo -e "正在创建日志目录" echo -e "正在创建日志目录"
mkdir -p ${sc_dir}/log mkdir -p ${app_sc_dir}/log
fi fi
#将所需要部署的组件ymal输出到文件 #将所需要部署的组件ymal输出到文件
echo "${compose_files} ">${sc_dir}/compose_files echo "${compose_files} ">${app_sc_dir}/compose_files
COMPOSE_FILE=$(cat ${sc_dir}/compose_files) COMPOSE_FILE=$(cat ${app_sc_dir}/compose_files)
sudo docker-compose ${COMPOSE_FILE} up -d sudo docker-compose ${COMPOSE_FILE} up -d
} }
function status(){ function status(){
echo echo
cd ${sc_dir} cd ${app_sc_dir}
docker-compose ${COMPOSE_FILE} ps docker-compose ${COMPOSE_FILE} ps
} }
function start(){ function start(){
echo echo
cd ${sc_dir} cd ${app_sc_dir}
docker-compose ${COMPOSE_FILE} start docker-compose ${COMPOSE_FILE} start
} }
function stop(){ function stop(){
echo echo
cd ${sc_dir} cd ${app_sc_dir}
docker-compose ${COMPOSE_FILE} stop docker-compose ${COMPOSE_FILE} stop
} }
function restart(){ function restart(){
echo echo
cd ${sc_dir} cd ${app_sc_dir}
docker-compose ${COMPOSE_FILE} stop docker-compose ${COMPOSE_FILE} stop
docker-compose ${COMPOSE_FILE} start docker-compose ${COMPOSE_FILE} start
} }
function uninstall(){ function uninstall(){
echo echo
cd ${sc_dir} cd ${app_sc_dir}
docker-compose ${COMPOSE_FILE} down docker-compose ${COMPOSE_FILE} down
} }
...@@ -180,7 +181,7 @@ function main(){ ...@@ -180,7 +181,7 @@ function main(){
;; ;;
*) *)
echo echo
cd ${sc_dir} cd ${app_sc_dir}
docker-compose ${COMPOSE_FILES} $@ docker-compose ${COMPOSE_FILES} $@
;; ;;
esac esac
......
#/bin/bash #/bin/bash
#项目名
APP_NAME=search-center
#镜像相关 #镜像相关
SC_IMAGE_URL=harbor.hw.jiankangyouyi.com:5000/search-center-public/ SC_IMAGE_URL=harbor.hw.jiankangyouyi.com:5000/search-center-public/
SC_IMAGE_NAME=search-center SC_IMAGE_NAME=${APP_NAME}
SC_IMAGE_VERSION=v1.0 SC_IMAGE_VERSION=v1.0
#部署目录 #部署目录
DEPLOY_DIR=/ops_project DEPLOY_DIR=/ops_project/Health-cloud-server
DB_DEPLOY_DIR=/ops_project/Health-cloud-server-DB
#search-center配置文件目录 #search-center配置文件目录
APP_CONF_DIR=${DEPLOY_DIR}/search-center/conf/app APP_CONF_DIR=${DEPLOY_DIR}/${APP_NAME}/conf
#是否使用外部es #是否使用外部es
ES_ISUSE_STATUS=false ES_ISUSE_STATUS=false
......
#!/bin/bash #!/bin/bash
#set -e #set -e
#加载配置信息
source ./install.ini source ./install.ini
DEPLOY_FILE=$(dirname $0) #定义安装程序的app路径
if [ ! -d ${DEPLOY_DIR} ];then mkdir -p ${DEPLOY_DIR};fi DEPLOY_FILE=$(dirname $0)/Health-Cloud-server/app_server
sc_dir=${DEPLOY_DIR}/search-center #定义安装程序的db路径
DB_DEPLOY_FILE=$(dirname $0)/Health-Cloud-server/db_server
if [ ! -d ${DEPLOY_DIR} ];then mkdir -p ${DEPLOY_DIR};fi
#定义部署目标路径(app,db)
app_sc_dir=${DEPLOY_DIR}/${APP_NAME}
db_sc_dir=${DB_DEPLOY_DIR}
#将docker-compose工程部署到本机 #将docker-compose工程部署到本机
if [[ ! -d ${sc_dir} && ! -f ~/.hcrc ]];then if [[ ! -d ${app_sc_dir} && ! -f ~/.hcrc ]];then
cp -rf ${DEPLOY_FILE}/search_center ${sc_dir} cp -rf ${DEPLOY_FILE}/${APP_NAME} ${app_sc_dir}
cp -rf ${DB_DEPLOY_FILE} ${db_sc_dir}
else else
echo "目标目录已安装search_center,请检查${sc_dir}.hcrc是否存在" echo "目标目录已安装${APP_NAME},请检查${app_sc_dir} .hcrc是否存在"
exit 127 exit 127
fi fi
#将配置文件存入环境变量文件,使其全局生效 #将配置文件存入环境变量文件,使其全局生效
cp ./install.ini ${sc_dir}/install.ini.example cp ./install.ini ${app_sc_dir}/install.ini.example
env_context=$(cat ${sc_dir}/install.ini.example |grep -v "^#"|grep -v "^$") env_context=$(cat ${app_sc_dir}/install.ini.example |grep -v "^#"|grep -v "^$")
echo "${env_context}">${sc_dir}/.env echo "${env_context}">${app_sc_dir}/.env
source ${sc_dir}/.env source ${app_sc_dir}/.env
ln -s ${sc_dir}/.env ${sc_dir}/install.ini 2>/dev/null ln -s ${app_sc_dir}/.env ${app_sc_dir}/install.ini 2>/dev/null
#安装hcrc版本文件 #安装hcrc版本文件
echo -e "sc_dir=${sc_dir}\n search-center版本${SC_IMAGE_VERSION}">~/.hcrc 2>/dev/null || echo "" echo -e "app_sc_dir=${app_sc_dir}\n ${APP_NANME}版本${SC_IMAGE_VERSION}">~/.hcrc 2>/dev/null || echo ""
#安装hcctl管理命令 #安装hcctl管理命令
sudo cp hcctl /usr/local/bin && sudo chmod +x /usr/local/bin/hcctl sudo cp hcctl /usr/local/bin && sudo chmod +x /usr/local/bin/hcctl
ln -s /usr/local/bin/hcctl /usr/bin/hcctl 2>/dev/null ln -s /usr/local/bin/hcctl /usr/bin/hcctl 2>/dev/null
cd ${sc_dir} cd ${app_sc_dir}
#--------------------部署-----------------------# #--------------------部署-----------------------#
echo -e "----------安装向导------------" echo -e "----------安装向导------------"
echo -e "- all模式-->全部安装(主服务seatch-center+数据库+队列)" echo -e "- all模式-->全部安装(主服务${APP_NAME}+数据库+队列)"
echo -e "- server模式-->只安装主服务search-center(请注意提前修改install.ini中外部db和mq的连接配置)" echo -e "- server模式-->只安装主服务${APP_NAME}(请注意提前修改install.ini中外部db和mq的连接配置)"
echo -e "- controller模式-->安装主服务search-center+数据库 or 队列" echo -e "- controller模式-->安装主服务${APP_NAME}+数据库 or 队列"
echo -e "------------------------------" echo -e "------------------------------"
PS3='请选择安装模式: ' PS3='请选择安装模式: '
...@@ -42,7 +48,7 @@ if [ $? -ne 0 ];then ...@@ -42,7 +48,7 @@ if [ $? -ne 0 ];then
echo "安装过程出现错误,请查看相关配置..." echo "安装过程出现错误,请查看相关配置..."
exit 127 exit 127
fi fi
echo "search-center 服务已安装成功..." echo "${APP_NAME}服务已安装成功..."
sleep 2 sleep 2
echo -e "服务启动状态: " echo -e "服务启动状态: "
sleep 2 sleep 2
......
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