Commit abfb43e7 authored by 赵啸非's avatar 赵啸非

添加门户前端脚本

parent b0f2cadc
#!/bin/bash
#Shell 环境
SHELL_NAME="deploy.sh"
BASEDIR=$(dirname $0)
BASEDIR=$( (
cd "$BASEDIR"
pwd
))
SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log"
JAVA_HOME="/usr/local/java/jdk1.8"
OPT_PATH="/usr/local"
PUBLISH_PATH="/home/publish"
LOCK_FILE="/tmp/deploy.lock"
PRO_NAME="smart-gov" #项目名称
# 时间变量
LOG_DATE='date "+%Y-%m-%d"'
LOG_TIME='date "+%H-%M-%S"'
# nginx
NGINX_CONF_PATH="/etc/nginx/conf.d/"
# mysql变量
MYSQL_HOST="127.0.0.1"
MYSQL_USER="root"
MYSQL_PASSWORD="xhx@2022"
CDATE=$(date "+%Y-%m-%d")
CTIME=$(date "+%H-%M-%S")
#/usr/lib/systemd/system/nacos.service
SERVICE_PATH="/usr/lib/systemd/system"
NACOS="nacos"
NACOS_FILENAME="nacos-server-2.1.1.tar.gz"
NACOS_SERVICE="${SERVICE_PATH}/${NACOS}.service"
NACOS_EXECPATH="${OPT_PATH}/${NACOS}"
# 网关工程变量
SMART_GATEWAY="smart-gateway"
SMART_GATEWAY_FILENAME="${SMART_GATEWAY}.tar.gz"
SMART_GATEWAY_SERVICE="${SERVICE_PATH}/smart-gateway.service"
SMART_GATEWAY_EXECPATH="${PUBLISH_PATH}/smart-gateway"
# 门户工程变量
SMART_PORTAL_PLATFORM="smart-portal-platform"
SMART_PORTAL_PLATFORM_FILENAME="${SMART_PORTAL_PLATFORM}.tar.gz"
SMART_PORTAL_PLATFORM_UI_FILENAME="${SMART_PORTAL_PLATFORM}-ui.tar.gz"
SMART_PORTAL_PLATFORM_SERVICE="${SERVICE_PATH}/${SMART_PORTAL_PLATFORM}.service"
SMART_PORTAL_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_PORTAL_PLATFORM}"
# 基础工程变量
SMART_BASE_PLATFORM="smart-base-platform"
SMART_BASE_PLATFORM_FILENAME="${SMART_BASE_PLATFORM}.tar.gz"
SMART_BASE_PLATFORM_UI_FILENAME="${SMART_BASE_PLATFORM}-ui.tar.gz"
SMART_BASE_PLATFORM_SERVICE="${SERVICE_PATH}/${SMART_BASE_PLATFORM}.service"
SMART_BASE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_BASE_PLATFORM}"
# 设备工程变量
DEVICE_PLATFORM="device-platform"
DEVICE_PLATFORM_FILENAME="${DEVICE_PLATFORM}.tar.gz"
DEVICE_PLATFORM_UI_FILENAME="${DEVICE_PLATFORM}-ui.tar.gz"
DEVICE_PLATFORM_SERVICE="${SERVICE_PATH}/${DEVICE_PLATFORM}.service"
DEVICE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${DEVICE_PLATFORM}"
# 日志工程变量
LOG_PLATFORM="log-platform"
LOG_PLATFORM_FILENAME="${LOG_PLATFORM}.tar.gz"
LOG_PLATFORM_UI_FILENAME="${LOG_PLATFORM}-ui.tar.gz"
LOG_PLATFORM_SERVICE="${SERVICE_PATH}/${LOG_PLATFORM}.service"
LOG_PLATFORM_EXECPATH="${PUBLISH_PATH}/${LOG_PLATFORM}"
#加锁
shell_lock() {
touch ${LOCK_FILE}
}
#删除锁
shell_unlock() {
rm -f ${LOCK_FILE}
}
#写日志
writelog() {
LOGINFO=$1
echo ${LOGINFO}
echo "${CDATE} ${CTIME}: ${SHELL_NAME} : ${LOGINFO}" >>${SHELL_LOG}
}
setup_java() {
writelog "setup java"
}
setup_redis() {
writelog "setup redis"
}
setup_mysql() {
writelog "setup mysql"
}
setup_rabbitmq() {
writelog "setup rabbitmq"
}
setup_nginx() {
writelog "setup nginx"
}
usage() {
echo $"Usage: $0 [ deploy | rollback ]"
}
clear_deploy() {
PROJECT_NAME=$1
SERVICE=$2
EXECPATH=$3
rm -rf ${SERVICE}
rm -rf ${EXECPATH}
rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf
}
init_deploy() {
writelog "init_deploy"
mkdir -p ${PUBLISH_PATH}
chmod -R 755 $PUBLISH_PATH
mkdir -p /mortals/app/data
mkdir -p /mortals/app/logs
chmod -R 755 /mortals
}
build_service() {
PROJECT_NAME=$1
SERVICE=$2
EXECPATH=$3
echo "" >${SERVICE}
echo "[Unit]" >>${SERVICE}
echo "Description=${PROJECT_NAME}" >>${SERVICE}
echo "After=network.target" >>${SERVICE}
echo "" >>${SERVICE}
echo "[Service]" >>${SERVICE}
echo "Environment=\"JAVA_HOME=$JAVA_HOME\"" >>${SERVICE}
echo "Type=forking" >>${SERVICE}
echo "ExecStart=${EXECPATH}/bin/start.sh" >>${SERVICE}
echo "ExecStop=${EXECPATH}/bin/shutdown.sh" >>${SERVICE}
echo "PrivateTmp=true" >>${SERVICE}
echo "" >>${SERVICE}
echo "[Install]" >>${SERVICE}
echo "WantedBy=multi-user.target" >>${SERVICE}
writelog "${PROJECT_NAME}服务创建完成!"
}
start_service_and_nginx() {
PROJECT_NAME=$1
systemctl enable ${PROJECT_NAME}
systemctl daemon-reload
systemctl start ${PROJECT_NAME}
cd ${NGINX_CONF_PATH}
cp -a ${BASEDIR}/release/conf/${PROJECT_NAME}.conf ${PROJECT_NAME}.conf
nginx -t
nginx -s reload
jcpid=$(ps -ef | grep -v "grep" | grep "${PROJECT_NAME} " | awk '{print $2}')
writelog "${PROJECT_NAME}服务启动,PID is ${jcpid}"
}
nacos_deploy() {
writelog "${NACOS}_deploy"
rm -rf ${NACOS_SERVICE}
rm -rf ${NACOS_EXECPATH}
cp -a $BASEDIR/release/nacos/${NACOS_FILENAME} $OPT_PATH
cd $OPT_PATH
tar -zvxf ${NACOS_FILENAME}
rm -f ${NACOS_FILENAME}
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${NACOS_EXECPATH}/db/nacos.sql
if [ ! -f "$NACOS_SERVICE" ]; then
echo "" >$NACOS_SERVICE
echo "[Unit]" >>$NACOS_SERVICE
echo "Description=nacos" >>$NACOS_SERVICE
echo "After=network.target" >>$NACOS_SERVICE
echo "" >>$NACOS_SERVICE
echo "[Service]" >>$NACOS_SERVICE
echo "Environment=\"JAVA_HOME=$JAVA_HOME\"" >>$NACOS_SERVICE
echo "Type=forking" >>$NACOS_SERVICE
echo "ExecStart=${NACOS_EXECPATH}/bin/startup.sh -m standalone" >>$NACOS_SERVICE
echo "ExecStop=${NACOS_EXECPATH}/bin/shutdown.sh" >>$NACOS_SERVICE
echo "PrivateTmp=true" >>$NACOS_SERVICE
echo "" >>$NACOS_SERVICE
echo "[Install]" >>$NACOS_SERVICE
echo "WantedBy=multi-user.target" >>$NACOS_SERVICE
writelog "NACOS_SERVICE创建完成!"
else
writelog "NACOS_SERVICE文件已经存在"
fi
writelog "NACOS_SERVICE服务启动!"
systemctl enable ${NACOS}
systemctl daemon-reload
systemctl start ${NACOS}
jcpid=$(ps -ef | grep -v "grep" | grep "${NACOS} " | awk '{print $2}')
writelog "${NACOS}服务启动!pid=${jcpid}"
}
smart_gateway_deploy() {
writelog "${SMART_GATEWAY}_deploy"
clear_deploy ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH}
cp -a ${BASEDIR}/release/${SMART_GATEWAY}/${SMART_GATEWAY_FILENAME} ${PUBLISH_PATH}
cd ${PUBLISH_PATH}
tar -zxvf ${SMART_GATEWAY_FILENAME} #解压tar.gz包
rm -f ${SMART_GATEWAY_FILENAME} #删除tar.gz包
if [ ! -f "${SMART_GATEWAY_SERVICE}" ]; then
build_service ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH}
else
writelog "${SMART_GATEWAY}服务文件已经存在!"
fi
start_service_and_nginx ${SMART_GATEWAY}
}
smart_portal_platform_deploy() {
writelog "${SMART_PORTAL_PLATFORM}_deploy"
clear_deploy ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH}
writelog "${SMART_PORTAL_PLATFORM}_clear_finish"
cp -a ${BASEDIR}/release/${SMART_PORTAL_PLATFORM}/${SMART_PORTAL_PLATFORM_FILENAME} ${PUBLISH_PATH}
cp -a ${BASEDIR}/release/${SMART_PORTAL_PLATFORM}/${SMART_PORTAL_PLATFORM_UI_FILENAME} ${PUBLISH_PATH}
cd ${PUBLISH_PATH}
if [ ! -f "${SMART_PORTAL_PLATFORM_FILENAME}" ]; then
writelog "${SMART_PORTAL_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!"
return
fi
tar -zxvf ${SMART_PORTAL_PLATFORM_FILENAME} #解压tar.gz包
rm -f ${SMART_PORTAL_PLATFORM_FILENAME} #删除tar.gz包
tar -zxvf ${SMART_PORTAL_PLATFORM_UI_FILENAME} #解压tar.gz包
rm -f ${SMART_PORTAL_PLATFORM_UI_FILENAME} #删除tar.gz包
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_PORTAL_PLATFORM_EXECPATH}/db/db.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_PORTAL_PLATFORM_EXECPATH}/db/menu.sql
if [ ! -f "${SMART_PORTAL_PLATFORM_SERVICE}" ]; then
build_service ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH}
else
writelog "${SMART_PORTAL_PLATFORM}服务文件已经存在!"
fi
start_service_and_nginx ${SMART_PORTAL_PLATFORM}
}
smart_base_platform_deploy() {
writelog "${SMART_BASE_PLATFORM}_deploy"
clear_deploy ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH}
cp -a ${BASEDIR}/release/${SMART_BASE_PLATFORM}/${SMART_BASE_PLATFORM_FILENAME} ${PUBLISH_PATH}
cp -a ${BASEDIR}/release/${SMART_BASE_PLATFORM}/${SMART_BASE_PLATFORM_UI_FILENAME} ${PUBLISH_PATH}
cd ${PUBLISH_PATH}
if [ ! -f "${SMART_BASE_PLATFORM_FILENAME}" ]; then
writelog "${SMART_BASE_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!"
return
fi
tar -zxvf ${SMART_BASE_PLATFORM_FILENAME} #解压tar.gz包
rm -f ${SMART_BASE_PLATFORM_FILENAME} #删除tar.gz包
tar -zxvf ${SMART_BASE_PLATFORM_UI_FILENAME} #解压tar.gz包
rm -f ${SMART_BASE_PLATFORM_UI_FILENAME} #删除tar.gz包
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/base.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/base_modules.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/menu.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/params.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/init_area_data.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/init_matter_data.sql
if [ ! -f "${SMART_BASE_PLATFORM_SERVICE}" ]; then
build_service ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH}
else
writelog "${SMART_BASE_PLATFORM}服务文件已经存在!"
fi
start_service_and_nginx ${SMART_BASE_PLATFORM}
}
device_platform_deploy() {
writelog "${DEVICE_PLATFORM}_deploy"
clear_deploy ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH}
cp -a ${BASEDIR}/release/${DEVICE_PLATFORM}/${DEVICE_PLATFORM_FILENAME} ${PUBLISH_PATH}
cp -a ${BASEDIR}/release/${DEVICE_PLATFORM}/${DEVICE_PLATFORM_UI_FILENAME} ${PUBLISH_PATH}
cd ${PUBLISH_PATH}
if [ ! -f "${DEVICE_PLATFORM_FILENAME}" ]; then
writelog "${DEVICE_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!"
return
fi
tar -zxvf ${DEVICE_PLATFORM_FILENAME} #解压tar.gz包
rm -f ${DEVICE_PLATFORM_FILENAME} #删除tar.gz包
tar -zxvf ${DEVICE_PLATFORM_UI_FILENAME} #解压tar.gz ui包
rm -f ${DEVICE_PLATFORM_UI_FILENAME} #删除tar.gz ui包
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/base.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/module.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/menu.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/params.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/init_area.sql
if [ ! -f "${DEVICE_PLATFORM_SERVICE}" ]; then
build_service ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH}
else
writelog "${DEVICE_PLATFORM}服务文件已经存在!"
fi
cp -a /home/smart-gov/release/device-platform/device-platform-ui.tar.gz /home/publish/
cd /home/publish/ #进入移动文件后的目录
tar -zxvf device-platform-ui.tar.gz #解压tar.gz包
rm -f device-platform-ui.tar.gz #删除tar.gz包
start_service_and_nginx ${DEVICE_PLATFORM}
}
log_platform_deploy() {
writelog "${LOG_PLATFORM}_deploy"
clear_deploy ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH}
cp -a ${BASEDIR}/release/${LOG_PLATFORM}/${LOG_PLATFORM_FILENAME} ${PUBLISH_PATH}
cp -a ${BASEDIR}/release/${LOG_PLATFORM}/${LOG_PLATFORM_UI_FILENAME} ${PUBLISH_PATH}
cd ${PUBLISH_PATH}
if [ ! -f "${LOG_PLATFORM_FILENAME}" ]; then
writelog "${LOG_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!"
return
fi
tar -zxvf ${LOG_PLATFORM_FILENAME} #解压tar.gz包
rm -f ${LOG_PLATFORM_FILENAME} #删除tar.gz包
tar -zxvf ${LOG_PLATFORM_UI_FILENAME} #解压tar.gz包
rm -f ${LOG_PLATFORM_UI_FILENAME} #删除tar.gz包
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/base.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/module.sql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/menu.sql
if [ ! -f "${LOG_PLATFORM_SERVICE}" ]; then
build_service ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH}
else
writelog "${LOG_PLATFORM}服务文件已经存在!"
fi
start_service_and_nginx ${LOG_PLATFORM}
}
stopApps() {
echo "停止服务开始!"
echo "nacos stop..."
systemctl stop ${NACOS}
echo "nacos finish..."
echo "smart-gateway stop..."
systemctl stop ${SMART_GATEWAY}
echo "smart-gateway finish..."
echo "smart-portal-platform stop..."
systemctl stop ${SMART_PORTAL_PLATFORM}
echo "smart-portal-platform finish..."
echo "smart-base-platform stop..."
systemctl stop ${SMART_BASE_PLATFORM}
echo "smart-base-platform finish..."
echo "device-platform stop..."
systemctl stop ${DEVICE_PLATFORM}
echo "device-platform finish..."
echo "log-platform stop..."
systemctl stop ${LOG_PLATFORM}
echo "log-platform finish..."
echo "停止服务完成!"
}
startApps() {
echo "启动服务开始!"
systemctl start ${NACOS}
systemctl start ${SMART_GATEWAY}
systemctl start ${SMART_PORTAL_PLATFORM}
systemctl start ${SMART_BASE_PLATFORM}
systemctl start ${DEVICE_PLATFORM}
systemctl start ${LOG_PLATFORM}
echo "启动服务完成!"
}
rollback() {
echo "功能未实现!"
}
program_deploy() {
echo program_deploy
}
project_deploy() {
shell_lock
init_deploy
nacos_deploy
smart_gateway_deploy
smart_portal_platform_deploy
smart_base_platform_deploy
device_platform_deploy
log_platform_deploy
shell_unlock
}
function menu() { #显示菜单
cat <<eof
*************************************
MENU
1.环境软件部署
2.项目软件部署
3.停止服务
4.启动服务
0.退出
*************************************"
eof
}
function num() { #选项
read -p "请输入您需要操作的项目: " number
case $number in
1)
program_deploy
;;
2)
project_deploy
;;
3)
stopApps
;;
4)
startApps
;;
5)
rollback
;;
0)
cd ${BASEDIR}
exit 0
;;
esac
}
#主函数
main() {
if [ -f ${LOCK_FILE} ]; then
echo "Deploy is running" && exit
fi
while true; do
menu
num
done
}
main $1
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