127 lines
3.2 KiB
Bash
127 lines
3.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# 结伴客项目部署脚本
|
||
|
|
# 用于将项目部署到远程 CentOS 服务器
|
||
|
|
|
||
|
|
set -e # 遇到错误时退出
|
||
|
|
|
||
|
|
# 配置信息
|
||
|
|
REMOTE_HOST="1.13.156.49"
|
||
|
|
REMOTE_USER="root"
|
||
|
|
REMOTE_PASSWORD="Aiotjkl$743838"
|
||
|
|
BACKEND_REMOTE_PATH="/data/nodejs/jiebanke"
|
||
|
|
ADMIN_SYSTEM_REMOTE_PATH="/data/vue/jiebanke"
|
||
|
|
WEBSITE_REMOTE_PATH="/data/website/jiebanke"
|
||
|
|
|
||
|
|
# 颜色输出
|
||
|
|
RED='\033[0;31m'
|
||
|
|
GREEN='\033[0;32m'
|
||
|
|
YELLOW='\033[1;33m'
|
||
|
|
BLUE='\033[0;34m'
|
||
|
|
NC='\033[0m' # No Color
|
||
|
|
|
||
|
|
echo -e "${GREEN}========== 结伴客项目部署脚本 ==========${NC}"
|
||
|
|
|
||
|
|
# 检查是否提供了部署目标参数
|
||
|
|
if [ $# -eq 0 ]; then
|
||
|
|
echo -e "${YELLOW}使用方法:${NC}"
|
||
|
|
echo " ./deploy.sh all - 部署所有模块"
|
||
|
|
echo " ./deploy.sh backend - 部署后端服务"
|
||
|
|
echo " ./deploy.sh admin - 部署后台管理系统"
|
||
|
|
echo " ./deploy.sh website - 部署官方网站"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 检查rsync是否安装
|
||
|
|
check_rsync() {
|
||
|
|
if ! command -v rsync &> /dev/null; then
|
||
|
|
echo -e "${RED}错误: 未找到 rsync 命令,请先安装 rsync${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
# 部署后端服务
|
||
|
|
deploy_backend() {
|
||
|
|
echo -e "${BLUE}正在部署后端服务到 $REMOTE_HOST:$BACKEND_REMOTE_PATH ...${NC}"
|
||
|
|
|
||
|
|
# 检查rsync
|
||
|
|
check_rsync
|
||
|
|
|
||
|
|
# 同步文件到远程服务器
|
||
|
|
echo -e "${BLUE}正在同步文件到远程服务器...${NC}"
|
||
|
|
rsync -avz --delete \
|
||
|
|
--exclude node_modules \
|
||
|
|
--exclude .git \
|
||
|
|
--exclude logs \
|
||
|
|
../backend/ $REMOTE_USER@$REMOTE_HOST:$BACKEND_REMOTE_PATH/
|
||
|
|
|
||
|
|
echo -e "${GREEN}后端服务部署完成${NC}"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 部署后台管理系统
|
||
|
|
deploy_admin_system() {
|
||
|
|
echo -e "${BLUE}正在部署后台管理系统到 $REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH ...${NC}"
|
||
|
|
|
||
|
|
# 检查rsync
|
||
|
|
check_rsync
|
||
|
|
|
||
|
|
# 同步文件到远程服务器
|
||
|
|
echo -e "${BLUE}正在同步文件到远程服务器...${NC}"
|
||
|
|
rsync -avz --delete \
|
||
|
|
--exclude node_modules \
|
||
|
|
--exclude .git \
|
||
|
|
--exclude dist \
|
||
|
|
../admin-system/ $REMOTE_USER@$REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH/
|
||
|
|
|
||
|
|
echo -e "${GREEN}后台管理系统部署完成${NC}"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 部署官方网站
|
||
|
|
deploy_website() {
|
||
|
|
echo -e "${BLUE}正在部署官方网站到 $REMOTE_HOST:$WEBSITE_REMOTE_PATH ...${NC}"
|
||
|
|
|
||
|
|
# 检查rsync
|
||
|
|
check_rsync
|
||
|
|
|
||
|
|
# 同步文件到远程服务器
|
||
|
|
echo -e "${BLUE}正在同步文件到远程服务器...${NC}"
|
||
|
|
rsync -avz --delete \
|
||
|
|
--exclude node_modules \
|
||
|
|
--exclude .git \
|
||
|
|
../website/ $REMOTE_USER@$REMOTE_HOST:$WEBSITE_REMOTE_PATH/
|
||
|
|
|
||
|
|
echo -e "${GREEN}官方网站部署完成${NC}"
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
# 部署所有模块
|
||
|
|
deploy_all() {
|
||
|
|
echo -e "${BLUE}开始部署所有模块...${NC}"
|
||
|
|
deploy_backend
|
||
|
|
deploy_admin_system
|
||
|
|
deploy_website
|
||
|
|
echo -e "${GREEN}所有模块部署完成${NC}"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 根据参数执行相应操作
|
||
|
|
case $1 in
|
||
|
|
"backend")
|
||
|
|
deploy_backend
|
||
|
|
;;
|
||
|
|
"admin")
|
||
|
|
deploy_admin_system
|
||
|
|
;;
|
||
|
|
"website")
|
||
|
|
deploy_website
|
||
|
|
;;
|
||
|
|
"all")
|
||
|
|
deploy_all
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo -e "${RED}未知参数: $1${NC}"
|
||
|
|
echo -e "${YELLOW}请使用: all, backend, admin, website${NC}"
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
echo -e "${GREEN}========== 部署完成 ==========${NC}"
|