91 lines
4.9 KiB
Markdown
91 lines
4.9 KiB
Markdown
# 提示词:部署与运行环境
|
||
|
||
目标环境:甲方 **同一台** Windows Server(`129.211.181.80` / `10_206_0_15`)。现网继续跑 `C:\yutongda`。新系统是**另一套应用**,不要切旧 `ops\active-release.json`,不要占用 8080/8810/8813。现网发布仍按甲方原流程;测试环境用本目录 `12`。
|
||
|
||
## 同机并存
|
||
|
||
| 项 | 现网(不动) | 新系统 |
|
||
|---|---|---|
|
||
| 目录 | `C:\yutongda` | 例如 `C:\ytd-test\` |
|
||
| 主账 / 智能体 / AIBOT | 8080 / 8810 / 8813 | 另选端口,例如 8180 / 8910 / 8913 |
|
||
| Nginx | `ai.ytd-scm.com` | **同一域名**;切流前不改 `ai.conf` 回调/H5 |
|
||
| MySQL / PG / Redis / MinIO | `jeecg-boot`、`ytd_runtime`、`ytd:prod:node01-07`、桶 `ytd-inquiry` | 库 `ytd_test`、`ytd_test_runtime`;Redis **db1** 前缀 `ytd:test:`;桶 `ytd-test` |
|
||
| TMS | `03` 现网 BaseURL + Client 三件套 | **原样使用**;只 query,默认不开 lock/release |
|
||
| 企微询价应用 | `1000010` | **同一套**,配置抄 `03` |
|
||
| 企微运维通知 | `1000014` | **同一套** |
|
||
|
||
切流替换旧系统时,再把 Nginx 反代指到新端口并停现网 AIBOT 桥,企微后台回调 URL 不用改。然后停下面这份旧清单。
|
||
|
||
## 切流时停旧:域名与端口
|
||
|
||
**域名(旧站点,切流后由新系统接管同一名或下线)**
|
||
|
||
| 地址 | 用途 |
|
||
|---|---|
|
||
| `https://ai.ytd-scm.com` | 后台静态 + 总入口 |
|
||
| `https://ai.ytd-scm.com/jeecgboot/`、`/jeecg-boot/` | 反代旧 Java 8080 |
|
||
| `https://ai.ytd-scm.com/wecom/callback` | 企微应用回调 → 旧 8811 |
|
||
| `https://ai.ytd-scm.com/wecom/robot/callback` | 群机器人(现网空配置)→ 旧 8812 |
|
||
| `https://ai.ytd-scm.com/inquiry-form/` | H5 → 旧 8810 |
|
||
| `https://ai.ytd-scm.com/inquiry-form/upload/` | H5 上传 → 旧 8810 |
|
||
|
||
机器公网 `129.211.181.80`、SSH `22`、Nginx `80/443` **不要关**(新系统还要用)。`www.waxonai.cn` 只是仓库里旧示例 conf,生产以 `ai.ytd-scm.com` 为准。
|
||
|
||
**本机进程口(停旧应用服务)**
|
||
|
||
| 端口 | 旧进程 | 切流后 |
|
||
|---|---|---|
|
||
| 8080 | Java JeecgBoot | 停 |
|
||
| 8809 | Python bridge_api | 停 |
|
||
| 8810 | Python agent_api | 停 |
|
||
| 8811 | Python wecom_callback | 停 |
|
||
| 8812 | Python wecom_robot | 停(若在跑) |
|
||
| 8813 | AIBOT 仅 127.0.0.1 | 停 |
|
||
| (无端口) | wecom/llm/recognition/quote/archive Worker | 停 NSSM |
|
||
|
||
**不要当「旧询价服务」关掉的**
|
||
|
||
| 地址 | 原因 |
|
||
|---|---|
|
||
| 数据机 `10.206.0.14:3306/5432/6379` | 实例共用;只停用库 `jeecg-boot`、`ytd_runtime` 与前缀 `ytd:prod:node01-07` |
|
||
| 本机 MinIO `9000` / 控制台 `9001` | 实例共用;只停用桶 `ytd-inquiry` |
|
||
| TMS `http://113.106.62.254:3100/sangoe-boot` | 外部系统,新系统继续用 |
|
||
| Gitea `gitea.lionqi.com` | 源码,无关运行 |
|
||
|
||
企微侧切流:后台 `1000010` 回调地址保持 `https://ai.ytd-scm.com/wecom/callback`,只改 Nginx 指到新智能体。停现网 8813 后再起新 AIBOT(同一 Bot)。运维 **`1000014` 仍共用**。测试告警正文带 `[test]`。
|
||
|
||
## 必须保留的运维原则
|
||
|
||
1. 制品不可变:新版本写入 `releases\` 新目录,禁止覆盖活动目录。
|
||
2. 原子切换指针:`ops\active-release.json` 等;失败自动回指旧版。
|
||
3. 互斥锁:禁止两人同时部署。
|
||
4. 构建不含 `.env`、密钥、日志、用户附件、数据库 dump。
|
||
5. 健康检查 ≠ 业务验收。
|
||
6. 并存阶段:禁止真实 TMS **lock/release**、禁止改现网回调与防火墙、禁止改 `C:\yutongda\secure\`。查价可用现网 TMS。测试库 `ytd_test` / `ytd_test_runtime` 的加表加字段按 `05` 直接迁移,不必等批准。
|
||
|
||
## 进程与端口
|
||
|
||
新系统自己监听(避开现网):**8180** 主账、**8910** 智能体 HTTP、**8913** AIBOT 回环、一个 Worker。现网 8080/8810/8813 保持原样。
|
||
|
||
旧 release 的 8809/8811/8812 以及五个旧 Worker:**切流前不要停**。新系统用自己的服务名与端口。发布新版本时停的是 `C:\ytd-test\` 里的旧号,不是 `C:\yutongda`。切流时才把 `ai.conf` 的 inquiry-form / wecom/callback 反代到新 HTTP 端口。不要 Redis 全局单例锁。
|
||
|
||
## 基础设施
|
||
|
||
本机/服务器安装:JDK(若仍用 Java)、Python 3.12、Node(AIBOT 桥)、MySQL、PostgreSQL、Redis、MinIO 或 S3、LibreOffice、Nginx。
|
||
|
||
域名 `ai.ytd-scm.com` TLS 终止在 Nginx:静态后台、反代 `/jeecgboot`、inquiry-form 与企微回调到智能体 HTTP。
|
||
|
||
## 环境文件
|
||
|
||
- 示例:仓库 `.env.example` 只有变量名。
|
||
- 生产:服务器本地文件,权限仅运行账号。明文对照 `03`。
|
||
- 本机开发:用脚本注入环境变量,关闭真实出站。
|
||
|
||
## 你要交付的脚本
|
||
|
||
等价于现网:远程身份检查、累计发布、发布后 status、远程 PowerShell 封装。不要发明「scp 覆盖几个 py」的热修当正式发布。
|
||
|
||
## SSH
|
||
|
||
用户 `ytd_extdev_0903`,Ed25519,`IdentityFile ~/.ssh/id_ed25519_ytd`。公钥指纹见 `03`。私钥永不进仓库。
|