Commit 1e8a1f1e authored by “yiyousong”'s avatar “yiyousong”
parents 2d6ffd73 8f5af425
#生产环境 #生产环境
NODE_ENV = "production" NODE_ENV = "production"
VUE_APP_API_BASE_URL=http://192.168.0.218:11078/base VUE_APP_API_BASE_URL=http://192.168.0.251:11078/base
#VUE_APP_API_BASE_URL=http://192.168.0.98:11071/base \ No newline at end of file
\ No newline at end of file
#!/bin/bash #!/bin/bash
#Shell 环境 #Shell 环境
SHELL_NAME="deploy.sh" SHELL_NAME=$0
BASEDIR=$(dirname $0) BASEDIR=$(dirname $0)
BASEDIR=$( ( BASEDIR=$( (
cd "$BASEDIR" cd "$BASEDIR"
...@@ -8,28 +8,62 @@ BASEDIR=$( ( ...@@ -8,28 +8,62 @@ BASEDIR=$( (
)) ))
SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log" SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log"
JAVA_HOME="/usr/local/java/jdk1.8"
OPT_PATH="/usr/local" OPT_PATH="/usr/local"
PUBLISH_PATH="/home/publish" PUBLISH_PATH="/home/publish"
LOCK_FILE="/tmp/deploy.lock" LOCK_FILE="/tmp/deploy.lock"
SERVICE_PATH="/usr/lib/systemd/system"
ARM_64="aarch64"
X86_64="x86_64"
PRO_NAME="smart-gov" #项目名称 PRO_NAME="smart-gov" #项目名称
# 时间变量 # 时间变量
LOG_DATE='date "+%Y-%m-%d"' LOG_DATE='date "+%Y-%m-%d"'
LOG_TIME='date "+%H-%M-%S"' LOG_TIME='date "+%H-%M-%S"'
#java
JAVA_FILENAME="jdk1.8.tar.gz"
JAVA_ARM_FILENAME="jdk-8u341-linux-aarch64.tar.gz"
JAVA_HOME="${OPT_PATH}/java/jdk1.8"
# nginx # nginx
NGINX="nginx"
NGINX_FILENAME="nginx-1.22.0.tar.gz"
NGINX_SERVICE="${SERVICE_PATH}/${NGINX}.service"
NGINX_EXECPATH="${OPT_PATH}/${NGINX}"
NGINX_CONF="/etc/nginx/nginx.conf"
NGINX_CONF_PATH="/etc/nginx/conf.d/" NGINX_CONF_PATH="/etc/nginx/conf.d/"
# mysql变量 # mysql变量
MYSQL="mysql"
MYSQL_CENTOS_FILENAME="mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz"
MYSQL_EXECPATH="${OPT_PATH}/${MYSQL}"
MYSQL_CONF_PATH="/etc/my.cnf"
MYSQL_DATA_PATH="${MYSQL_EXECPATH}/data"
MYSQL_HOST="127.0.0.1" MYSQL_HOST="127.0.0.1"
MYSQL_PORT="3306"
MYSQL_USER="root" MYSQL_USER="root"
MYSQL_PASSWORD="xhx@2022" MYSQL_PASSWORD="xhx@2022"
#rabbitmq
RABBITMQ="rabbitmq"
RABBIT_CENTOS_FILENAME="rabbitmq-server-3.9.16-1.el7.noarch.rpm"
ELANG_CENTOS_FILENAME="erlang-23.3.4.11-1.el7.x86_64.rpm"
RABBITMQ_USER="root"
RABBITMQ_PASSWORD="xhx@2022"
RABBITMQ_CONF_PATH="/etc/rabbitmq/"
#redis
REDIS="redis"
REDIS_FILENAME="redis-stable.tar.gz"
REDIS_SERVICE="${SERVICE_PATH}/${REDIS}.service"
REDIS_EXECPATH="${OPT_PATH}/${REDIS}"
REDIS_HOST="127.0.0.1"
REDIS_PORT="6379"
REDIS_PASSWORD="12345678"
CDATE=$(date "+%Y-%m-%d") CDATE=$(date "+%Y-%m-%d")
CTIME=$(date "+%H-%M-%S") CTIME=$(date "+%H-%M-%S")
#/usr/lib/systemd/system/nacos.service
SERVICE_PATH="/usr/lib/systemd/system"
NACOS="nacos" NACOS="nacos"
NACOS_FILENAME="nacos-server-2.1.1.tar.gz" NACOS_FILENAME="nacos-server-2.1.1.tar.gz"
NACOS_SERVICE="${SERVICE_PATH}/${NACOS}.service" NACOS_SERVICE="${SERVICE_PATH}/${NACOS}.service"
...@@ -47,6 +81,7 @@ SMART_PORTAL_PLATFORM_FILENAME="${SMART_PORTAL_PLATFORM}.tar.gz" ...@@ -47,6 +81,7 @@ SMART_PORTAL_PLATFORM_FILENAME="${SMART_PORTAL_PLATFORM}.tar.gz"
SMART_PORTAL_PLATFORM_UI_FILENAME="${SMART_PORTAL_PLATFORM}-ui.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_SERVICE="${SERVICE_PATH}/${SMART_PORTAL_PLATFORM}.service"
SMART_PORTAL_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_PORTAL_PLATFORM}" SMART_PORTAL_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_PORTAL_PLATFORM}"
SMART_PORTAL_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${SMART_PORTAL_PLATFORM}-ui"
# 基础工程变量 # 基础工程变量
SMART_BASE_PLATFORM="smart-base-platform" SMART_BASE_PLATFORM="smart-base-platform"
...@@ -54,6 +89,7 @@ SMART_BASE_PLATFORM_FILENAME="${SMART_BASE_PLATFORM}.tar.gz" ...@@ -54,6 +89,7 @@ SMART_BASE_PLATFORM_FILENAME="${SMART_BASE_PLATFORM}.tar.gz"
SMART_BASE_PLATFORM_UI_FILENAME="${SMART_BASE_PLATFORM}-ui.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_SERVICE="${SERVICE_PATH}/${SMART_BASE_PLATFORM}.service"
SMART_BASE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_BASE_PLATFORM}" SMART_BASE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_BASE_PLATFORM}"
SMART_BASE_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${SMART_BASE_PLATFORM}-ui"
# 设备工程变量 # 设备工程变量
DEVICE_PLATFORM="device-platform" DEVICE_PLATFORM="device-platform"
...@@ -61,6 +97,7 @@ DEVICE_PLATFORM_FILENAME="${DEVICE_PLATFORM}.tar.gz" ...@@ -61,6 +97,7 @@ DEVICE_PLATFORM_FILENAME="${DEVICE_PLATFORM}.tar.gz"
DEVICE_PLATFORM_UI_FILENAME="${DEVICE_PLATFORM}-ui.tar.gz" DEVICE_PLATFORM_UI_FILENAME="${DEVICE_PLATFORM}-ui.tar.gz"
DEVICE_PLATFORM_SERVICE="${SERVICE_PATH}/${DEVICE_PLATFORM}.service" DEVICE_PLATFORM_SERVICE="${SERVICE_PATH}/${DEVICE_PLATFORM}.service"
DEVICE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${DEVICE_PLATFORM}" DEVICE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${DEVICE_PLATFORM}"
DEVICE_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${DEVICE_PLATFORM}-ui"
# 日志工程变量 # 日志工程变量
LOG_PLATFORM="log-platform" LOG_PLATFORM="log-platform"
...@@ -68,6 +105,7 @@ LOG_PLATFORM_FILENAME="${LOG_PLATFORM}.tar.gz" ...@@ -68,6 +105,7 @@ LOG_PLATFORM_FILENAME="${LOG_PLATFORM}.tar.gz"
LOG_PLATFORM_UI_FILENAME="${LOG_PLATFORM}-ui.tar.gz" LOG_PLATFORM_UI_FILENAME="${LOG_PLATFORM}-ui.tar.gz"
LOG_PLATFORM_SERVICE="${SERVICE_PATH}/${LOG_PLATFORM}.service" LOG_PLATFORM_SERVICE="${SERVICE_PATH}/${LOG_PLATFORM}.service"
LOG_PLATFORM_EXECPATH="${PUBLISH_PATH}/${LOG_PLATFORM}" LOG_PLATFORM_EXECPATH="${PUBLISH_PATH}/${LOG_PLATFORM}"
LOG_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${LOG_PLATFORM}-ui"
#加锁 #加锁
shell_lock() { shell_lock() {
...@@ -80,32 +118,223 @@ shell_unlock() { ...@@ -80,32 +118,223 @@ shell_unlock() {
#写日志 #写日志
writelog() { writelog() {
LOGINFO=$1 LOGINFO=$1
echo ${LOGINFO}
echo "${CDATE} ${CTIME}: ${SHELL_NAME} : ${LOGINFO}" >>${SHELL_LOG} echo "${CDATE} ${CTIME}: ${SHELL_NAME} : ${LOGINFO}" >>${SHELL_LOG}
echo ${LOGINFO}
}
unix_is_centos() {
if [ ! -f "/etc/redhat-release" ]; then
writelog "centos"
else
writelog "ubuntu"
fi
}
check_cpu() {
cpu_info=$(arch)
writelog ${cpu_info}
}
usage() {
echo $"Usage: $0 [ deploy | rollback ]"
} }
setup_java() { setup_java() {
writelog "setup java" writelog "setup java"
system_version=$(unix_is_centos)
if [[ ${system_version} == "centos" ]]; then
writelog "centos java clear"
yum -y remove java-*-openjdk* #卸载centos中的openjdk
yum -y remove tzdata-java.noarch
else
writelog "ubuntu java clear"
apt-get purge openjdk*
apt-get purge icedtea-* openjdk-*
fi
rm -rf ${JAVA_HOME}
mkdir -p ${JAVA_HOME}
cpu_info=$(check_cpu)
if [[ ${cpu_info} == *${ARM_64}* ]]; then
tar -zvxf ${BASEDIR}/soft/java/arm_64/${JAVA_ARM_FILENAME} -C ${JAVA_HOME} --strip-components 1
echo "arm64"
elif [[ ${cpu_info} == *${X86_64}* ]]; then
tar -zvxf ${BASEDIR}/soft/java/x86_64/${JAVA_FILENAME} -C ${JAVA_HOME} --strip-components 1
echo "x86_64"
else
tar -zvxf ${BASEDIR}/soft/java/x86_64/${JAVA_FILENAME} -C ${JAVA_HOME} --strip-components 1
echo "x86_64"
fi
export JAVA_HOME=${JAVA_HOME}
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile #使配置立即生效
#检查Java安装和配置
cd $BASEDIR
writelog "setup java finish!"
} }
setup_redis() { setup_redis() {
writelog "setup redis" writelog "setup redis start"
rm -rf ${REDIS_EXECPATH}
mkdir -p ${REDIS_EXECPATH}
tar -zvxf ${BASEDIR}/soft/${REDIS}/${REDIS_FILENAME} -C ${REDIS_EXECPATH} --strip-components 1
cd ${REDIS_EXECPATH}
make
make PREFIX=${REDIS_EXECPATH} install
sed -i "s/daemonize no/daemonize yes/g" ${REDIS_EXECPATH}/redis.conf
sed -i "s/protected-mode yes/protected-mode no/g" ${REDIS_EXECPATH}/redis.conf
sed -i "s/bind 127.0.0.1 -::1/#bind 127.0.0.1 -::1/g" ${REDIS_EXECPATH}/redis.conf
echo "notify-keyspace-events Ex" >>${REDIS_EXECPATH}/redis.conf
echo "requirepass ${REDIS_PASSWORD}" >>${REDIS_EXECPATH}/redis.conf
echo "[Unit]
Description=${REDIS}
After=network.target
[Service]
Type=forking
ExecStart=${REDIS_EXECPATH}/bin/redis-server ${REDIS_EXECPATH}/redis.conf
ExecReload=${REDIS_EXECPATH}/bin/redis-server -s reload
ExecStop=${REDIS_EXECPATH}/bin/redis-server -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
" >${REDIS_SERVICE}
systemctl enable redis
systemctl daemon-reload
systemctl start redis
writelog "setup redis finish"
} }
setup_mysql() { setup_mysql() {
writelog "setup mysql" writelog "setup mysql"
service mysql stop
rm -rf ${MYSQL_DATA_PATH}
rm -rf ${MYSQL_EXECPATH}
mkdir -p ${MYSQL_EXECPATH}
mkdir -p ${MYSQL_DATA_PATH}
mkdir -p ${MYSQL_EXECPATH}/mysql-files
groupadd mysql
useradd -r -g mysql mysql
tar -zvxf ${BASEDIR}/soft/${MYSQL}/${MYSQL_CENTOS_FILENAME} -C ${MYSQL_EXECPATH} --strip-components 1
cd ${MYSQL_EXECPATH}
chown mysql:mysql mysql-files
chmod 750 mysql-file
echo "[mysqld]
datadir=${MYSQL_DATA_PATH}
port = ${MYSQL_PORT}
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=1
#忽略密码
skip-grant-tables
" >${MYSQL_CONF_PATH}
#初始化
bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH}
#创建软连接
ln -s ${MYSQL_EXECPATH}/support-files/mysql.server /etc/init.d/mysql
ln -s ${MYSQL_EXECPATH}/bin/mysql /usr/bin/mysql
export PATH=$PATH:${MYSQL_EXECPATH}/bin
source /etc/profile
service mysql restart
mysql -uroot -p123 <${BASEDIR}/soft/${MYSQL}/user.sql
sed -i "s/skip-grant-tables/#skip-grant-tables/g" ${MYSQL_CONF_PATH}
service mysql restart
} }
setup_rabbitmq() { setup_rabbitmq() {
writelog "setup rabbitmq" writelog "setup rabbitmq"
mkdir -p ${RABBITMQ_CONF_PATH}
system_version=$(unix_is_centos)
if [[ ${system_version} == "centos" ]]; then
writelog "centos erlang and rabbitmq clear"
yum -y remove rabbitmq-server.noarch
yum -y remove erlang-*
yum remove erlang.x86_64
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq
rpm -Uvh ${BASEDIR}/soft/${RABBITMQ}/${ELANG_CENTOS_FILENAME}
yum install -y erlang
rpm -Uvh ${BASEDIR}/soft/${RABBITMQ}/${RABBIT_CENTOS_FILENAME}
yum install -y rabbitmq-server
cp -a ${BASEDIR}/release/conf/${RABBITMQ}.conf ${RABBITMQ_CONF_PATH}
systemctl enable rabbitmq-server
systemctl daemon-reload
systemctl start rabbitmq-server
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user ${RABBITMQ_USER} ${RABBITMQ_PASSWORD} # 添加用户
rabbitmqctl set_user_tags ${RABBITMQ_USER} administrator # 设置用户角色,分配操作权限
rabbitmqctl set_permissions -p / ${RABBITMQ_USER} ".*" ".*" ".*" # 为用户添加资源权限(授予访问虚拟机根节点的所有权限)
else
writelog "ubuntu erlang and rabbitmq clear"
fi
} }
setup_nginx() { setup_nginx() {
writelog "setup nginx" writelog "setup nginx"
} writelog "stop and remove nginx"
systemctl stop nginx
system_version=$(unix_is_centos)
if [[ ${system_version} == "centos" ]]; then
writelog "centos nginx clear"
yum remove nginx
else
writelog "ubuntu nginx clear"
apt-get purge nginx*
fi
rm -rf ${NGINX_EXECPATH}
mkdir -p ${NGINX_EXECPATH}
tar -zvxf ${BASEDIR}/soft/${NGINX}/${NGINX_FILENAME} -C ${NGINX_EXECPATH} --strip-components 1
cd ${NGINX_EXECPATH}
./configure --prefix=${NGINX_EXECPATH} --conf-path=${NGINX_CONF}
make
make install
cp -a ${BASEDIR}/release/conf/${NGINX}.conf ${NGINX_CONF}
echo "[Unit]
Description=${NGINX}
After=network.target
[Service]
Type=forking
ExecStart=${NGINX_EXECPATH}/sbin/nginx
ExecReload=${NGINX_EXECPATH}/sbin/nginx -s reload
ExecStop=${NGINX_EXECPATH}/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
" >${NGINX_SERVICE}
systemctl enable ${NGINX}
systemctl daemon-reload
systemctl start ${NGINX}
writelog "setup nginx finish"
usage() {
echo $"Usage: $0 [ deploy | rollback ]"
} }
clear_deploy() { clear_deploy() {
...@@ -116,6 +345,32 @@ clear_deploy() { ...@@ -116,6 +345,32 @@ clear_deploy() {
rm -rf ${SERVICE} rm -rf ${SERVICE}
rm -rf ${EXECPATH} rm -rf ${EXECPATH}
rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf
mkdir -p ${EXECPATH}
}
clear_ui_deploy() {
EXEC_UI_PATH=$1
rm -rf ${EXEC_UI_PATH}
mkdir -p ${EXEC_UI_PATH}
}
init_setup() {
writelog "init_setup"
system_version=$(unix_is_centos)
if [[ ${system_version} == "centos" ]]; then
writelog "centos install and update"
yum update -y
yum install -y gcc
yum install -y socat
else
writelog "ubuntu install and update"
apt update
apt --fix-broken install
apt install -y gcc
apt install -y socat
fi
} }
init_deploy() { init_deploy() {
...@@ -168,11 +423,9 @@ nacos_deploy() { ...@@ -168,11 +423,9 @@ nacos_deploy() {
writelog "${NACOS}_deploy" writelog "${NACOS}_deploy"
rm -rf ${NACOS_SERVICE} rm -rf ${NACOS_SERVICE}
rm -rf ${NACOS_EXECPATH} rm -rf ${NACOS_EXECPATH}
cp -a $BASEDIR/release/nacos/${NACOS_FILENAME} $OPT_PATH mkdir -p ${NACOS_EXECPATH}
cd $OPT_PATH tar -zvxf $BASEDIR/release/nacos/${NACOS_FILENAME} -C ${NACOS_EXECPATH} --strip-components 1
tar -zvxf ${NACOS_FILENAME} mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${NACOS_EXECPATH}/db/nacos.sql
rm -f ${NACOS_FILENAME}
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${NACOS_EXECPATH}/db/nacos.sql
if [ ! -f "$NACOS_SERVICE" ]; then if [ ! -f "$NACOS_SERVICE" ]; then
echo "" >$NACOS_SERVICE echo "" >$NACOS_SERVICE
echo "[Unit]" >>$NACOS_SERVICE echo "[Unit]" >>$NACOS_SERVICE
...@@ -203,10 +456,7 @@ nacos_deploy() { ...@@ -203,10 +456,7 @@ nacos_deploy() {
smart_gateway_deploy() { smart_gateway_deploy() {
writelog "${SMART_GATEWAY}_deploy" writelog "${SMART_GATEWAY}_deploy"
clear_deploy ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH} clear_deploy ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH}
cp -a ${BASEDIR}/release/${SMART_GATEWAY}/${SMART_GATEWAY_FILENAME} ${PUBLISH_PATH} tar -zvxf ${BASEDIR}/release/${SMART_GATEWAY}/${SMART_GATEWAY_FILENAME} -C ${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 if [ ! -f "${SMART_GATEWAY_SERVICE}" ]; then
build_service ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH} build_service ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH}
else else
...@@ -219,20 +469,15 @@ smart_portal_platform_deploy() { ...@@ -219,20 +469,15 @@ smart_portal_platform_deploy() {
writelog "${SMART_PORTAL_PLATFORM}_deploy" writelog "${SMART_PORTAL_PLATFORM}_deploy"
clear_deploy ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH} clear_deploy ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH}
writelog "${SMART_PORTAL_PLATFORM}_clear_finish" 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} clear_ui_deploy ${SMART_PORTAL_PLATFORM_UI_EXECPATH}
if [ ! -f "${SMART_PORTAL_PLATFORM_FILENAME}" ]; then writelog "${SMART_PORTAL_PLATFORM_UI_EXECPATH}_clear_finish"
writelog "${SMART_PORTAL_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!"
return tar -zvxf ${BASEDIR}/release/${SMART_PORTAL_PLATFORM}/${SMART_PORTAL_PLATFORM_FILENAME} -C ${PUBLISH_PATH}
fi tar -zvxf ${BASEDIR}/release/${SMART_PORTAL_PLATFORM}/${SMART_PORTAL_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH}
tar -zxvf ${SMART_PORTAL_PLATFORM_FILENAME} #解压tar.gz包
rm -f ${SMART_PORTAL_PLATFORM_FILENAME} #删除tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_PORTAL_PLATFORM_EXECPATH}/db/db.sql
tar -zxvf ${SMART_PORTAL_PLATFORM_UI_FILENAME} #解压tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_PORTAL_PLATFORM_EXECPATH}/db/menu.sql
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 if [ ! -f "${SMART_PORTAL_PLATFORM_SERVICE}" ]; then
build_service ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH} build_service ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH}
else else
...@@ -244,23 +489,19 @@ smart_portal_platform_deploy() { ...@@ -244,23 +489,19 @@ smart_portal_platform_deploy() {
smart_base_platform_deploy() { smart_base_platform_deploy() {
writelog "${SMART_BASE_PLATFORM}_deploy" writelog "${SMART_BASE_PLATFORM}_deploy"
clear_deploy ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH} 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} clear_ui_deploy ${SMART_BASE_PLATFORM_UI_EXECPATH}
cd ${PUBLISH_PATH} writelog "${SMART_BASE_PLATFORM_UI_EXECPATH}_clear_finish"
if [ ! -f "${SMART_BASE_PLATFORM_FILENAME}" ]; then
writelog "${SMART_BASE_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!" tar -zvxf ${BASEDIR}/release/${SMART_BASE_PLATFORM}/${SMART_BASE_PLATFORM_FILENAME} -C ${PUBLISH_PATH}
return tar -zvxf ${BASEDIR}/release/${SMART_BASE_PLATFORM}/${SMART_BASE_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH}
fi
tar -zxvf ${SMART_BASE_PLATFORM_FILENAME} #解压tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/base.sql
rm -f ${SMART_BASE_PLATFORM_FILENAME} #删除tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/base_modules.sql
tar -zxvf ${SMART_BASE_PLATFORM_UI_FILENAME} #解压tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/menu.sql
rm -f ${SMART_BASE_PLATFORM_UI_FILENAME} #删除tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -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/base.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -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/base_modules.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/init_matter_data.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 if [ ! -f "${SMART_BASE_PLATFORM_SERVICE}" ]; then
build_service ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH} build_service ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH}
else else
...@@ -272,55 +513,39 @@ smart_base_platform_deploy() { ...@@ -272,55 +513,39 @@ smart_base_platform_deploy() {
device_platform_deploy() { device_platform_deploy() {
writelog "${DEVICE_PLATFORM}_deploy" writelog "${DEVICE_PLATFORM}_deploy"
clear_deploy ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH} 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} clear_ui_deploy ${DEVICE_PLATFORM_UI_EXECPATH}
cd ${PUBLISH_PATH} writelog "${SMA_PLATFORM_UI_EXECPATH}_clear_finish"
if [ ! -f "${DEVICE_PLATFORM_FILENAME}" ]; then
writelog "${DEVICE_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!" tar -zvxf ${BASEDIR}/release/${DEVICE_PLATFORM}/${DEVICE_PLATFORM_FILENAME} -C ${PUBLISH_PATH}
return tar -zvxf ${BASEDIR}/release/${DEVICE_PLATFORM}/${DEVICE_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH}
fi
tar -zxvf ${DEVICE_PLATFORM_FILENAME} #解压tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/base.sql
rm -f ${DEVICE_PLATFORM_FILENAME} #删除tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/module.sql
tar -zxvf ${DEVICE_PLATFORM_UI_FILENAME} #解压tar.gz ui包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/menu.sql
rm -f ${DEVICE_PLATFORM_UI_FILENAME} #删除tar.gz ui包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/params.sql
mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/init_area.sql
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 if [ ! -f "${DEVICE_PLATFORM_SERVICE}" ]; then
build_service ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH} build_service ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH}
else else
writelog "${DEVICE_PLATFORM}服务文件已经存在!" writelog "${DEVICE_PLATFORM}服务文件已经存在!"
fi 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} start_service_and_nginx ${DEVICE_PLATFORM}
} }
log_platform_deploy() { log_platform_deploy() {
writelog "${LOG_PLATFORM}_deploy" writelog "${LOG_PLATFORM}_deploy"
clear_deploy ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH} 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} clear_ui_deploy ${LOG_PLATFORM_UI_EXECPATH}
if [ ! -f "${LOG_PLATFORM_FILENAME}" ]; then writelog "${LOG_PLATFORM_UI_EXECPATH}_clear_finish"
writelog "${LOG_PLATFORM_FILENAME} 文件不存在,结束当前安装部署!"
return tar -zvxf ${BASEDIR}/release/${LOG_PLATFORM}/${LOG_PLATFORM_FILENAME} -C ${PUBLISH_PATH}
fi tar -zvxf ${BASEDIR}/release/${LOG_PLATFORM}/${LOG_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH}
tar -zxvf ${LOG_PLATFORM_FILENAME} #解压tar.gz包
rm -f ${LOG_PLATFORM_FILENAME} #删除tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/base.sql
tar -zxvf ${LOG_PLATFORM_UI_FILENAME} #解压tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/module.sql
rm -f ${LOG_PLATFORM_UI_FILENAME} #删除tar.gz包 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/menu.sql
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 if [ ! -f "${LOG_PLATFORM_SERVICE}" ]; then
build_service ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH} build_service ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH}
else else
...@@ -367,8 +592,18 @@ rollback() { ...@@ -367,8 +592,18 @@ rollback() {
echo "功能未实现!" echo "功能未实现!"
} }
back_menu() {
echo "功能未实现!"
}
program_deploy() { program_deploy() {
echo program_deploy writelog "system setup start"
setup_java
setup_mysql
setup_nginx
setup_redis
setup_rabbitmq
writelog "system setup finish"
} }
project_deploy() { project_deploy() {
...@@ -384,6 +619,7 @@ project_deploy() { ...@@ -384,6 +619,7 @@ project_deploy() {
} }
function menu() { #显示菜单 function menu() { #显示菜单
cat <<eof cat <<eof
************************************* *************************************
MENU MENU
...@@ -399,7 +635,34 @@ function menu() { #显示菜单 ...@@ -399,7 +635,34 @@ function menu() { #显示菜单
0.退出 0.退出
*************************************" *************************************
eof
}
function submenu() { #显示子菜单
cat <<eof
*************************************
MENU
1.JAVA部署
2.MYSQL部署
3.redis部署
4.rabbitmq部署
5.nginx部署
6.全部部署
9.更新升级系统软件
0.返回
*************************************
eof eof
} }
...@@ -407,9 +670,14 @@ function num() { #选项 ...@@ -407,9 +670,14 @@ function num() { #选项
read -p "请输入您需要操作的项目: " number read -p "请输入您需要操作的项目: " number
case $number in case $number in
1) 1)
program_deploy # program_deploy
while true; do
submenu
subnum
done
;; ;;
2) 2)
stopApps
project_deploy project_deploy
;; ;;
3) 3)
...@@ -429,11 +697,69 @@ function num() { #选项 ...@@ -429,11 +697,69 @@ function num() { #选项
esac esac
} }
function subnum() { #选项
read -p "请输入您需要安装部署的软件: " number
case $number in
1)
setup_java
;;
2)
setup_mysql
;;
3)
setup_redis
;;
4)
setup_rabbitmq
;;
5)
setup_nginx
;;
6)
program_deploy
;;
9)
init_setup
;;
0)
while true; do
menu
num
done
;;
esac
}
#主函数 #主函数
main() { main() {
if [ -f ${LOCK_FILE} ]; then if [ -f ${LOCK_FILE} ]; then
echo "Deploy is running" && exit echo "Deploy is running" && exit
fi fi
#获取参数
while getopts h:P:u:p opt; do
case $opt in
h)
#echo "-mysql-host ---- $OPTARG"
MYSQL_HOST=$OPTARG
;;
P)
#echo "-mysql-port ---- $OPTARG"
MYSQL_PORT=$OPTARG
;;
u)
#echo "-mysql-user ---- $OPTARG"
MYSQL_USER=$OPTARG
;;
p)
#echo "-mysql-password ---- $OPTARG"
MYSQL_PASSWORD=$OPTARG
;;
?)
echo "$opt is an invalid option"
;;
esac
done
while true; do while true; do
menu menu
...@@ -441,4 +767,14 @@ main() { ...@@ -441,4 +767,14 @@ main() {
done done
} }
if [[ $1 = "--help" ]]; then
echo "命令选项:"
echo " -h : 参数为数据库mysql 链接地址"
echo " -P : 参数为数据库mysql 链接端口"
echo " -u : 参数为数据库mysql 登录用户"
echo " -p : 参数为数据库mysql 登录用户密码"
exit 0
fi
main $1 main $1
# 生产环境配置 # 生产环境配置
NODE_ENV = production NODE_ENV = production
VUE_APP_API_BASE_URL=http://192.168.0.218:11072/zwfw VUE_APP_API_BASE_URL=http://192.168.0.98:11072/zwfw
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