113 lines
2.8 KiB
Bash
113 lines
2.8 KiB
Bash
#!/usr/bin/env bash
|
|
TARBALL_PATH=$PWD
|
|
NIC=$(route -n | awk '{print $1,$8}' | grep "0.0.0.0" | awk '{print $2}')
|
|
LOCAL_IP=$(ifconfig $NIC | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | tr -d "addr:")
|
|
WORK_DIR=/opt/factory-digital-app
|
|
CONFIG_DIR=/opt/config/factory-digital-app
|
|
LOG_DIR=$(pwd)/deploy_logs/
|
|
LOG_FILE="${LOG_DIR}/demo_$(date '+%Y%m%d').log"
|
|
if [[ ! -d "${LOG_DIR}" ]]; then
|
|
mkdir -p "${LOG_DIR}"
|
|
touch "$LOG_FILE"
|
|
fi
|
|
# 定义颜色
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[0;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
function info() {
|
|
local MSG=$1
|
|
local COLOR=${2:-$NC} # 默认不使用颜色
|
|
local DATE=$(date '+%Y-%m-%d %H:%M:%S')
|
|
# 打印到终端,使用指定的颜色
|
|
echo -e "${COLOR}[${DATE}] ${MSG}${NC}"
|
|
# 追加到日志文件,无颜色
|
|
echo "[${DATE}] ${MSG}" >>"${LOG_FILE}"
|
|
}
|
|
|
|
function prepare() {
|
|
|
|
info "[Preparing deploy ..............]" $YELLOW
|
|
# 检查部署目录是否存在
|
|
if [[ ! -d $WORK_DIR ]]; then
|
|
mkdir -p $WORK_DIR
|
|
else
|
|
info "[$WORK_DIR] folder has existed! prepare check fail!"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -d $CONFIG_DIR ]]; then
|
|
mkdir -p $CONFIG_DIR
|
|
fi
|
|
|
|
docker_process=$(docker ps | grep factory-digital-app| wc -l)
|
|
if [[ $docker_process -gt 0 ]]; then
|
|
info "factory-digital-appprocess has existed; prepare check fail!"
|
|
exit 1
|
|
fi
|
|
|
|
dos2unix $TARBALL_PATH/*
|
|
cp $TARBALL_PATH/docker-compose.yml $WORK_DIR/
|
|
cp $TARBALL_PATH/.env $WORK_DIR/
|
|
cp $TARBALL_PATH/*.env $CONFIG_DIR/
|
|
if [[ $LOCAL_IP == "172.16.0.9" || $LOCAL_IP == "172.16.0.8" ]]; then
|
|
echo "[双机环境]"
|
|
echo -e "\nKAFKACLOUD_URL=172.16.0.8:9092,172.16.0.9:9092\nMYSQL_URL=172.16.0.4\nREDIS_URL=172.16.0.7" >> $CONFIG_DIR/variables.env
|
|
else
|
|
echo "[单机环境]"
|
|
echo -e "\nKAFKACLOUD_URL=172.16.0.3:9092nMYSQL_URL=172.16.0.3\nREDIS_URL=172.16.0.3" >> $CONFIG_DIR/variables.env
|
|
sed -i 's/172.16.0.3/'$LOCAL_IP'/g' $CONFIG_DIR/variables.env
|
|
fi
|
|
|
|
}
|
|
|
|
function deploy() {
|
|
info "[Deploying factory-digital-app ..............]" $YELLOW
|
|
cd $WORK_DIR && docker-compose up -d
|
|
|
|
}
|
|
|
|
function post_handle() {
|
|
info "[post handle factory-digital-app ..............]" $YELLOW
|
|
}
|
|
function uninstall() {
|
|
docker-compose down
|
|
rm -rf $WORK_DIR
|
|
rm -rf $CONFIG_DIR
|
|
}
|
|
function main() {
|
|
case $1 in
|
|
prepare)
|
|
prepare
|
|
;;
|
|
deploy)
|
|
deploy
|
|
;;
|
|
postHandle)
|
|
post_handle
|
|
;;
|
|
all)
|
|
prepare
|
|
deploy
|
|
post_handle
|
|
;;
|
|
local)
|
|
docker login -u cn-south-2@TQ0BQOAML1V5Y5HZ9ISP -p c6ec8441a31e8779899f060ee4a9146969b81f439ef5664cd2f5b3bd81cba962 swr.cn-south-2.myhuaweicloud.com
|
|
export IMAGE_URL=swr.cn-south-2.myhuaweicloud.com/yelink_appstore_test/
|
|
prepare
|
|
deploy
|
|
post_handle
|
|
;;
|
|
uninstall)
|
|
uninstall
|
|
;;
|
|
*)
|
|
fatal "Unsupported params"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
main $@
|