From d442b79972d509c3b29a95baaf3ba78a22789a18 Mon Sep 17 00:00:00 2001 From: vet Date: Mon, 13 Apr 2026 21:07:36 +0700 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 01-init-env.sh | 20 +++++++++++--------- README.md | 11 ++++++----- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/01-init-env.sh b/01-init-env.sh index 8fac632..78a7b7d 100755 --- a/01-init-env.sh +++ b/01-init-env.sh @@ -2,7 +2,8 @@ # ============================================================================= # 01-init-env.sh — 生成 .env.deploy-test 配置模板(测试服务器环境) # -# 作用:在项目根目录生成 .env.deploy-test,填写各服务的连接信息 +# 作用:在项目根目录写入 .env.deploy-test,填写各服务的连接信息 +# 若文件已存在:默认覆盖(覆盖前将旧文件备份为 .env.deploy-test.bak.<时间戳>) # 后续步骤:编辑 .env.deploy-test,然后执行 02-patch-config.sh # ============================================================================= set -euo pipefail @@ -13,13 +14,9 @@ init_script_log # ← 脚本执行日志 header "步骤 1 / 5 — 初始化 .env.deploy-test 配置" if [[ -f "$ENV_FILE" ]]; then - warn ".env.deploy-test 已存在,跳过创建" - echo "" - echo -e "${BOLD}当前配置:${NC}" - grep -v '^\s*#' "$ENV_FILE" | grep -v '^\s*$' | sed 's/^/ /' - echo "" - echo -e "如需重置:${YELLOW}rm $ENV_FILE && $0${NC}" - exit 0 + bak="${ENV_FILE}.bak.$(date +%Y%m%d-%H%M%S)" + warn ".env.deploy-test 已存在,将覆盖;旧文件已备份为 ${bak##*/}" + cp -a "$ENV_FILE" "$bak" fi cat > "$ENV_FILE" <<'EOF' @@ -29,6 +26,11 @@ cat > "$ENV_FILE" <<'EOF' # 编辑完成后执行:./deploy-test/02-patch-config.sh # ============================================================================= +# ── 连接检查脚本 check-conn.sh(可选)──────────────────────────────────────── +# 为 1 时:以 root 运行 check-conn 会尝试用 apt/dnf/yum 安装缺失的 awscli / mongodb-mongosh +# 非 root 或未安装包管理器时仍会跳过自动安装,仅打印提示 +CHECK_CONN_AUTO_INSTALL=1 + # ── 测试服务器公网 IP(必填)───────────────────────────────────────────────── # 本机(测试服务器)的公网 IP,LiveKit WebRTC 媒体流需要通过此 IP 对外暴露 # 本地 Mac 环境(deploy-local)也会引用此地址连接 LiveKit @@ -97,7 +99,7 @@ TENCENT_SDK_APP_ID=20033091 TENCENT_SDK_SECRET_KEY=cceba44084aaa04f8c48a1858ffd5385875c3a5ec006d34278d9d3714b40e3b0 EOF -success ".env.deploy-test 已创建: $ENV_FILE" +success ".env.deploy-test 已写入: $ENV_FILE" echo "" echo -e "${BOLD}下一步:${NC}" echo -e " 1. 确认 DEPLOY_TEST_IP 等关键配置正确:" diff --git a/README.md b/README.md index 0d3311a..0507c79 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ deploy-test/ ├── 00-init-tools.sh # 步骤0(可选):Linux 服务器安装 Go / Node / Docker、GOPROXY、GitHub HTTPS 重写 ├── common.sh # 公共函数库(路径、日志函数) -├── 01-init-env.sh # 步骤1:生成 .env.deploy-test 配置模板 +├── 01-init-env.sh # 步骤1:写入 .env.deploy-test(已存在则覆盖,旧文件带时间戳备份) ├── 02-patch-config.sh # 步骤2:将 .env.deploy-test 写入各服务 YAML ├── 03-start-infra.sh # 步骤3:启动 Docker 容器(Redis/Kafka/Etcd/LiveKit) ├── 04-build.sh # 步骤4:编译所有后端 Go 服务 @@ -102,7 +102,7 @@ sudo ./deploy-test/00-init-tools.sh docker # 仅 Docker # 0. (可选)裸机安装 Go / Node / Docker,见上文「步骤 0」 # sudo ./deploy-test/00-init-tools.sh -# 1. 生成配置模板 +# 1. 写入配置模板(若 .env.deploy-test 已存在会先备份为 .bak.<时间戳> 再覆盖) ./deploy-test/01-init-env.sh # 2. 修改配置(重要:确认 DEPLOY_TEST_IP 等信息正确) @@ -344,11 +344,12 @@ cd pc && rm -rf node_modules && yarn install | **完整校验** | 安装 **mongosh** 可测认证与库访问;安装 **AWS CLI**(命令 `aws`)可列桶与读写探测。 | | **未安装工具时** | MongoDB 可用 **nc** 仅测端口连通;S3 会跳过并打印手动验证命令。 | | **安装提示** | 脚本按系统给出命令(macOS 为 `brew`;Debian/Ubuntu 为 `apt-get`;Amazon/RHEL 为 `dnf`/`yum`),不会在 Linux 上误导为 `brew`。 | -| **可选自动安装** | 以 **root** 执行且设置 `CHECK_CONN_AUTO_INSTALL=1` 时,会尝试用 `apt`/`dnf`/`yum` 安装缺失的 `awscli`、`mongodb-mongosh`;失败仅告警,可按屏幕提示手动安装。 | +| **可选自动安装** | 以 **root** 执行且 `CHECK_CONN_AUTO_INSTALL=1` 时,会尝试用 `apt`/`dnf`/`yum` 安装缺失的 `awscli`、`mongodb-mongosh`;失败仅告警,可按屏幕提示手动安装。 | +| **默认值** | `01-init-env.sh` 生成的 `.env.deploy-test` 已写入 `CHECK_CONN_AUTO_INSTALL=1`;`check-conn.sh` 通过 `load_env` 读取。关闭则改为 `0` 或删行。 | ```bash -./deploy-test/check-conn.sh -CHECK_CONN_AUTO_INSTALL=1 ./deploy-test/check-conn.sh # root,可选自动安装 CLI +./deploy-test/check-conn.sh # 已含上述变量时无需再前缀 env +CHECK_CONN_AUTO_INSTALL=1 ./deploy-test/check-conn.sh # 临时覆盖(等同默认) ./deploy-test/check-conn.sh mongo ./deploy-test/check-conn.sh s3 ```