#!/bin/bash #产品环境部署 SHELL_NAME=deploy BASEDIR=$(dirname $0) BASEDIR=$( ( cd "$BASEDIR" pwd )) SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log" BASE_PATH="/home" OPT_PATH="/home/usr/local" SOFT_PATH="/usr/local" PUBLISH_PATH="/home/publish" LOCK_FILE="/tmp/deploy.lock" SERVICE_PATH="/usr/lib/systemd/system" ARM_64="aarch64" X86_64="x86_64" # 时间变量 LOG_DATE='date "+%Y-%m-%d"' LOG_TIME='date "+%H-%M-%S"' #java JAVA_FILENAME="jdk1.8.tar.gz" JAVA_ARM_FILENAME="jdk-8u341-linux-aarch64.tar.gz" JAVA_HOME="${SOFT_PATH}/java/jdk1.8" # nginx NGINX="nginx" NGINX_FILENAME="nginx-1.27.1.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" # mysql变量 MYSQL="mysql" MYSQL_CENTOS_FILENAME="mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz" MYSQL_EXECPATH="${SOFT_PATH}/${MYSQL}" MYSQL_CONF_PATH="/etc/my.cnf" MYSQL_DATA_PATH="${BASE_PATH}/${MYSQL}/data" MYSQL_HOST="127.0.0.1" MYSQL_PORT="3306" MYSQL_USER="root" MYSQL_PASSWORD="xhx@2022" MYSQL_SERVICE="${SERVICE_PATH}/mysql.service" #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_IP="127.0.0.1" RABBITMQ_USER="taxi_mq" RABBITMQ_PASSWORD="admin@2020" 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="hotel@2020" CDATE=$(date "+%Y-%m-%d") CTIME=$(date "+%H-%M-%S") NACOS="nacos" NACOS_HOST="127.0.0.1" NACOS_FILENAME="nacos-server-2.1.1.tar.gz" NACOS_SERVICE="${SERVICE_PATH}/${NACOS}.service" NACOS_EXECPATH="${OPT_PATH}/${NACOS}" # 项目部署平台 SETUP_PROJECT_PLATFORM="setup-project-manager" SETUP_PROJECT_PLATFORM_FILENAME="${SETUP_PROJECT_PLATFORM}.tar.gz" SETUP_PROJECT_PLATFORM_FILENAME_UI="${SETUP_PROJECT_PLATFORM}-ui.tar.gz" SETUP_PROJECT_PLATFORM_SERVICE="${SERVICE_PATH}/${SETUP_PROJECT_PLATFORM}.service" SETUP_PROJECT_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SETUP_PROJECT_PLATFORM}" #加锁 shell_lock() { touch ${LOCK_FILE} } #删除锁 shell_unlock() { rm -f ${LOCK_FILE} } #写日志 writelog() { LOGINFO=$1 echo "${CDATE} ${CTIME}: ${SHELL_NAME} : ${LOGINFO}" >>${SHELL_LOG} echo ${LOGINFO} } check_cpu() { cpu_info=$(arch) writelog ${cpu_info} } check_linux() { #判断linux系统版本 linux_version=$(cat /proc/version | grep "ky10") if [[ "$linux_version" != "" ]]; then writelog "qiling" fi linux_version=$(cat /proc/version | grep "el7") if [[ "$linux_version" != "" ]]; then writelog "centos7" fi linux_version=$(cat /proc/version | grep "Ubuntu") if [[ "$linux_version" != "" ]]; then writelog "Ubuntu" fi #Ubuntu } usage() { echo $"Usage: $0 [ deploy | rollback ]" } #清理ui clear_ui_deploy() { EXEC_UI_PATH=$1 rm -rf ${EXEC_UI_PATH} mkdir -p ${EXEC_UI_PATH} } setup_java() { writelog "setup java" rm -rf ${JAVA_HOME} mkdir -p ${JAVA_HOME} cpu_info=$(check_cpu) echo "${cpu_info}" 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 echo "export JAVA_HOME=${JAVA_HOME}" >>/etc/profile echo "export JRE_HOME=$JAVA_HOME/jre" >>/etc/profile echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib" >>/etc/profile echo "export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin" >>/etc/profile #检查Java安装和配置 cd $BASEDIR writelog "JAVA 环境软件安装完成" } 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} writelog "redis make start" make make PREFIX=${REDIS_EXECPATH} install sed -i "s/daemonize no/daemonize yes/g" ${REDIS_EXECPATH}/redis.conf sed -i "s/databases 16/databases 32/g" ${REDIS_EXECPATH}/redis.conf #修改datebase 为32 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 "REDIS环境软件安装完成!" } 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 yum -y install libncurses* writelog "exccmd tar -zvxf ${BASEDIR}/soft/${MYSQL}/${MYSQL_CENTOS_FILENAME} -C ${MYSQL_EXECPATH} --strip-components 1" 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-files echo " [mysqld] datadir=${MYSQL_DATA_PATH} socket=/tmp/mysql.sock port = ${MYSQL_PORT} sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 max_connections=800 innodb_file_per_table=1 #表名存储在磁盘是小写的,但是比较的时候是不区分大小写 lower_case_table_names=1 #忽略密码 skip-grant-tables [client] default-character-set=utf8 socket=/tmp/mysql.sock [mysql] default-character-set=utf8 socket=/tmp/mysql.sock " >${MYSQL_CONF_PATH} #初始化 writelog "mysql init cmd: bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock" bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock #bin/mysqld --initialize-insecure --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock #创建软连接 rm -f /etc/init.d/mysql rm -f /usr/bin/mysql ln -s ${MYSQL_EXECPATH}/support-files/mysql.server /etc/init.d/mysql ln -s ${MYSQL_EXECPATH}/bin/mysql /usr/bin/mysql writelog $MYSQL_SERVICE echo " [Unit] Description=MySQL Server After=network.target After=syslog.target [Service] User=mysql Group=mysql Type=forking PermissionsStartOnly=true ExecStart= /etc/init.d/mysql start ExecStop= /etc/init.d/mysql stop ExecReload= /etc/init.d/mysql restart LimitNOFILE = 5000 [Install] WantedBy=multi-user.target " >${MYSQL_SERVICE} systemctl enable mysql systemctl daemon-reload systemctl restart mysql mysql -uroot -p123 <${BASEDIR}/soft/${MYSQL}/user.sql sed -i "s/skip-grant-tables/#skip-grant-tables/g" ${MYSQL_CONF_PATH} systemctl restart mysql } setup_rabbitmq() { writelog "setup rabbitmq" mkdir -p ${RABBITMQ_CONF_PATH} writelog "linux 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 rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq_web_stomp_examples rabbitmqctl add_user ${RABBITMQ_USER} ${RABBITMQ_PASSWORD} # 添加用户 rabbitmqctl set_user_tags ${RABBITMQ_USER} administrator # 设置用户角色,分配操作权限 rabbitmqctl set_permissions -p / ${RABBITMQ_USER} ".*" ".*" ".*" # 为用户添加资源权限(授予访问虚拟机根节点的所有权限) } setup_nginx() { writelog "setup nginx" systemctl stop nginx yum remove nginx writelog "nginx depend install" yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ rm -rf ${NGINX_EXECPATH} mkdir -p ${NGINX_EXECPATH} mkdir -p ${NGINX_CONF_PATH} writelog "解压nginx:tar -zvxf ${BASEDIR}/soft/${NGINX}/${NGINX_FILENAME} -C ${NGINX_EXECPATH} --strip-components 1" tar -zvxf ${BASEDIR}/soft/${NGINX}/${NGINX_FILENAME} -C ${NGINX_EXECPATH} --strip-components 1 cd ${NGINX_EXECPATH} ./configure --prefix=${NGINX_EXECPATH} --conf-path=${NGINX_CONF} --with-http_stub_status_module --with-http_ssl_module --with-stream writelog "nginx make start" make make install /bin/cp -arf ${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} rm -f /usr/sbin/nginx ln -s ${NGINX_EXECPATH}/sbin/nginx /usr/sbin/nginx writelog "setup nginx finish" } setup_font() { writelog "字体安装..." yum install -y fontconfig mkfontscale tar -zvxf $BASEDIR/soft/font/Fonts.tar.gz -C /usr/share/fonts chmod -R 755 /usr/share/fonts/Fonts mkfontscale mkfontdir fc-cache -f -v writelog "字体安装完成" } setup_font() { writelog "docker安装..." writelog "docker安装完成" } clear_deploy() { PROJECT_NAME=$1 SERVICE=$2 EXECPATH=$3 rm -rf ${SERVICE} rm -rf ${EXECPATH} rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf if [ ! -d ${EXECPATH} ]; then mkdir -p ${EXECPATH} chmod -R 755 $EXECPATH fi } init_setup() { writelog "linux install and update" yum update -y yum install -y gcc yum install -y socat } init_deploy() { writelog "创建文件目录..." if [ ! -d ${OPT_PATH} ]; then mkdir -p ${OPT_PATH} chmod -R 755 $OPT_PATH fi if [ ! -d ${PUBLISH_PATH} ]; then mkdir -p ${PUBLISH_PATH} chmod -R 755 $PUBLISH_PATH fi if [ ! -d "/mortals/app/data" ]; then mkdir -p /mortals/app/data chmod -R 755 /mortals fi if [ ! -d "/mortals/app/logs" ]; then mkdir -p /mortals/app/logs chmod -R 755 /mortals fi writelog "创建文件目录完成" writelog "解压资源文件..." writelog "解压资源文件完成" } 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}服务创建完成!" } build_nginx_mysql_stream() { # upstream upstreams_mysql { # server 192.168.106.7:3306 max_fails=3 fail_timeout=30s; # } # server { # listen 1208; # proxy_connect_timeout 5s; # proxy_timeout 30s; # proxy_pass 192.168.10.151:3306; #需要代理的端口 # proxy_pass 192.168.106.7:3306 max_fails=5 fail_timeout=30s; # } SERVICE=$1 echo " server {" >${SERVICE} echo " listen 3306;" >>${SERVICE} echo " proxy_connect_timeout 10s;" >>${SERVICE} echo " proxy_timeout 30s;" >>${SERVICE} echo " proxy_pass ${MYSQL_HOST}:${MYSQL_PORT};" >>${SERVICE} echo " }" >>${SERVICE} writelog "mysql tcp代理创建完成" } build_nginx_redis_stream() { # upstream upstreams_mysql { # server 192.168.106.7:3306 max_fails=3 fail_timeout=30s; # } # server { # listen 1208; # proxy_connect_timeout 5s; # proxy_timeout 30s; # proxy_pass 192.168.10.151:3306; #需要代理的端口 # proxy_pass 192.168.106.7:3306 max_fails=5 fail_timeout=30s; # } SERVICE=$1 echo " server {" >${SERVICE} echo " listen ${REDIS_HOST};" >>${SERVICE} echo " proxy_connect_timeout 10s;" >>${SERVICE} echo " proxy_timeout 30s;" >>${SERVICE} echo " proxy_pass ${REDIS_HOST}:${REDIS_HOST};" >>${SERVICE} echo " }" >>${SERVICE} writelog "mysql tcp代理创建完成" } start_service_and_nginx() { PROJECT_NAME=$1 systemctl enable ${PROJECT_NAME} systemctl daemon-reload systemctl stop ${PROJECT_NAME} && systemctl start ${PROJECT_NAME} project_status=$(systemctl status "${PROJECT_NAME}" | grep Active | awk '{print $2}') cp -a ${BASEDIR}/release/conf/${PROJECT_NAME}.conf ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf nginx -s reload jcpid=$(ps -ef | grep -v "grep" | grep "${PROJECT_NAME} " | awk '{print $2}') writelog "${PROJECT_NAME}服务启动,PID is ${jcpid} ,status is ${project_status}" } nacos_deploy() { writelog "开始安装NACOS" #writelog "判断当前NACOS 的IP是否已经修改,如果修改了,则重新生成配置文件 IP:$NACOS_HOST" #writelog "判断当前mysql 的IP是否已经修改,如果修改了,则重新生成配置文件 IP:$MYSQL_HOST" if [ "$MYSQL_HOST" != "127.0.0.1" ]; then writelog "判断当前mysql 的IP已经修改,则重新生成配置文件 IP:$MYSQL_HOST" build_nginx_mysql_stream $NGINX_CONF_PATH/mysql_stream.stream #todo 添加nginx 针对当前ip的sql stream代理 fi #查看进程是否存在,如果存在 则不安装 #查看文件夹是否存在 if [ -d ${NACOS_EXECPATH} ]; then writelog "NACOS项目已经安装!" return fi #project_status=$(systemctl status "${NACOS}" | grep Active | awk '{print $2}') # if [ -n "$project_status" ]; then # echo "NACOS项目已经安装,状态: $project_status" # return # fi rm -rf ${NACOS_SERVICE} rm -rf ${NACOS_EXECPATH} mkdir -p ${NACOS_EXECPATH} writelog "tar -zvxf $BASEDIR/release/nacos/${NACOS_FILENAME} -C ${NACOS_EXECPATH} --strip-components 1" tar -zvxf $BASEDIR/release/nacos/${NACOS_FILENAME} -C ${NACOS_EXECPATH} --strip-components 1 writelog "NACOS 导入数据库中..." writelog " mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <./db/nacos.sql" mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <./db/nacos.sql writelog "创建NACOS启动服务..." echo "" >$NACOS_SERVICE echo "[Unit]" >>$NACOS_SERVICE echo "Description=nacos" >>$NACOS_SERVICE echo "After=network.target" >>$NACOS_SERVICE echo "" >>$NACOS_SERVICE,mq 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 chmod -R 755 $NACOS_EXECPATH systemctl enable $NACOS_SERVICE systemctl daemon-reload systemctl stop ${NACOS} && systemctl start ${NACOS} writelog "NACOS_SERVICE创建启动完成!" project_status=$(systemctl status "${NACOS}" | grep Active | awk '{print $2}') jcpid=$(ps -ef | grep -v "grep" | grep "${NACOS} " | awk '{print $2}') writelog "${NACOS}服务启动!pid is ${jcpid},status is ${project_status}" } setup_project_deploy() { writelog "开始安装项目部署平台" #writelog "判断当前NACOS 的IP是否已经修改,如果修改了,则重新生成配置文件 IP:$NACOS_HOST" if [ "$MYSQL_HOST" != "127.0.0.1" ]; then writelog "判断当前mysql 的IP已经修改,则重新生成配置文件 IP:$MYSQL_HOST" build_nginx_mysql_stream $NGINX_CONF_PATH/mysql_stream.stream fi # project_status=$(systemctl status "${SETUP_PROJECT_PLATFORM}" | grep Active | awk '{print $2}') # if [ -n "$project_status" ]; then # writelog "工程已经安装,状态: $project_status" # return # fi if [ -d ${SETUP_PROJECT_PLATFORM_EXECPATH} ]; then writelog "项目部署工程已经安装!" return fi clear_deploy ${SETUP_PROJECT_PLATFORM} ${SETUP_PROJECT_PLATFORM_SERVICE} ${SETUP_PROJECT_PLATFORM_EXECPATH} writelog "项目安装平台清理完成" writelog "项目安装平台部署中..." tar -zvxf ${BASEDIR}/release/${SETUP_PROJECT_PLATFORM}/${SETUP_PROJECT_PLATFORM_FILENAME} -C ${PUBLISH_PATH} writelog "项目安装平台导入数据库中..." writelog " mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <./db/setup.sql" mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <./db/setup.sql writelog "项目安装平台导入数据库完成!" writelog "创建项目启动服务..." build_service ${SETUP_PROJECT_PLATFORM} ${SETUP_PROJECT_PLATFORM_SERVICE} ${SETUP_PROJECT_PLATFORM_EXECPATH} chmod -R 755 $PUBLISH_PATH systemctl enable $SETUP_PROJECT_PLATFORM systemctl daemon-reload systemctl stop ${SETUP_PROJECT_PLATFORM} && systemctl start ${SETUP_PROJECT_PLATFORM} writelog "安装平台服务创建启动完成!" project_status=$(systemctl status "${SETUP_PROJECT_PLATFORM}" | grep Active | awk '{print $2}') jcpid=$(ps -ef | grep -v "grep" | grep "${SETUP_PROJECT_PLATFORM} " | awk '{print $2}') writelog "安装平台服务启动!pid is ${jcpid},status is ${project_status}" } #部署前台服务 project_ui_deploy() { writelog "${PROJECT_NAME}_ui_deploy" clear_ui_deploy ${PUBLISH_PATH}/${SETUP_PROJECT_PLATFORM}-ui/dist writelog " tar -zvxf ${BASEDIR}/release/${SETUP_PROJECT_PLATFORM}/${SETUP_PROJECT_PLATFORM_FILENAME_UI} -C ${PUBLISH_PATH}/${SETUP_PROJECT_PLATFORM}-ui/dist" tar -zvxf ${BASEDIR}/release/${SETUP_PROJECT_PLATFORM}/${SETUP_PROJECT_PLATFORM_FILENAME_UI} -C ${PUBLISH_PATH}/${SETUP_PROJECT_PLATFORM}-ui/dist #tar -zvxf ./${PROJECT_UI_FILENAME} -C ${PUBLISH_PATH} /bin/cp -arf ${BASEDIR}/release/conf/conf.d/setup-project-manager.conf ${NGINX_CONF_PATH}/ #systemctl restart ${NGINX} #${NGINX_EXECPATH}/sbin/nginx -s reload /usr/local/nginx/sbin/nginx -s reload writelog "${PROJECT_NAME}_ui_deploy_finish" } rollback() { writelog "功能未实现!" } back_menu() { writelog "功能未实现!" } program_deploy() { writelog "system setup start" setup_java setup_mysql setup_nginx setup_redis setup_font setup_rabbitmq writelog "system setup finish" } project_deploy() { #init_deploy #初始化文件目录部分 #nacos_deploy #nacos部署 #setup_project_deploy #项目部署平台 project_ui_deploy #项目部署平台ui } function menu() { #显示菜单 cat </dev/null; then if [ $VALID_CHECK == "yes" ]; then # echo "IP $IP available!" return 0 else # echo "IP $IP not available!" return 1 fi else #echo "IP format error!" return 1 fi } #主函数 main() { if [ -f ${LOCK_FILE} ]; then writelog "Deploy is running" && exit fi #判断是否初始安装,如果是,则解压当前文件包到当前目录下 if [ ! -d "./soft" ]; then writelog "文件夹不存在 解压" tar -xvf ./publish.tar else writelog "文件夹存在" 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 ;; ?) writelog "$opt is an invalid option" ;; esac done while true; do menu num done } if [[ $1 = "--help" ]]; then echo "命令选项:" echo " -h : 参数为数据库mysql 链接地址" echo " -P : 参数为数据库mysql 链接端口" echo " -u : 参数为数据库mysql 登录用户" echo " -p : 参数为数据库mysql 登录用户密码" exit 0 fi main $1