From 1c85297af1a97d2bc456acfc54b432cc0696ab21 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 27 Aug 2026 11:12:46 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=83=A8=E7=BD=B2=E6=89=8B=E5=86=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=BA=20foms=5Fapp=20=E7=BA=AF=E4=BC=9E?= =?UTF-8?q?=E5=8C=96=E5=90=8E=E7=9A=84=E6=B5=81=E7=A8=8B=EF=BC=88clone=20f?= =?UTF-8?q?oms=5Fapp=20+=20build=20+=20start.sh=20+=20URL=20=E5=B8=83?= =?UTF-8?q?=E5=B1=80=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/deploy-operations.md | 47 +++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/docs/deploy-operations.md b/docs/deploy-operations.md index 2648284..d9de646 100644 --- a/docs/deploy-operations.md +++ b/docs/deploy-operations.md @@ -1,12 +1,15 @@ # FOMS 部署与运维手册 -> 版本:2026-08-26(补全主备切换闭环后) +> 版本:2026-08-27(foms_app 纯伞化之后) > 适用:MySQL 主从 + rsync 文件同步的双机主备,VIP 浮动(1A+2B+3A) +> +> 仓库分工:**foms_app(纯伞:构建/配置/启动)** + foms(核心业务)+ dbbackup/filesync/hostwatch(邻接模块)。 +> 部署以 foms_app 为入口。 ## 一、架构 ``` - 管理中心 C(foms 应用 + 管理库 foms) + 管理中心 C(foms_app 组装运行,管理库 foms) ▲ HTTP(Bearer token) ┌────────────┴────────────┐ 主机 A(master) 主机 B(standby) @@ -17,33 +20,42 @@ ``` 三个角色: -- **管理中心 C**:跑 foms(核心 + dbbackup/filesync/hostwatch 模块),存配置与切换记录。 +- **管理中心 C**:跑 foms_app(组装核心 + dbbackup/filesync/hostwatch 模块),存配置与切换记录。 - **主机 A / 备机 B**:跑业务 + MySQL + keepalived + foms-agent(守护进程)。 - **VIP**:业务流量入口,平时在 A,故障时漂到 B(keepalived 兜底 + FOMS 主动操作)。 ## 二、管理中心 C 部署 ```bash -cd foms -./build.sh # 建 venv、装依赖(含三模块)、生成 DDL/CRUD +git clone git@git.opencomputing.cn:yumoqing/foms_app.git +cd foms_app +./build.sh # 建 venv、clone+安装全部模块、生成 DDL/CRUD ``` -**建库**: +**建库**(build 后各模块目录下生成了 DDL): ```bash -mysql -uroot -p < models/mysql.ddl.sql # 核心表 -mysql -uroot -p < pkgs/dbbackup/models/mysql.ddl.sql # dbbackup 表 -mysql -uroot -p < pkgs/filesync/models/mysql.ddl.sql # filesync 表 -mysql -uroot -p < pkgs/hostwatch/models/mysql.ddl.sql # hostwatch 表 +mysql -uroot -p < pkgs/foms/models/mysql.ddl.sql # 核心表 +mysql -uroot -p < pkgs/dbbackup/models/mysql.ddl.sql # dbbackup 表 +mysql -uroot -p < pkgs/filesync/models/mysql.ddl.sql # filesync 表 +mysql -uroot -p < pkgs/hostwatch/models/mysql.ddl.sql # hostwatch 表 ``` -**配置数据库连接**:编辑 `conf/config.json` 的 `databases.foms`(host/user/password/db)。 +**配置**: +- 数据库连接:编辑 `conf/config.json` 的 `databases.foms`(host/user/password/db)。 +- 环境变量:`cp .env.example .env`,填 `FOMS_PORT` / `MYSQL_ROOT_PASSWORD` / `FOMS_AGENT_TOKEN`。 **启动**: ```bash -py3/bin/python app/foms.py # 监听 conf 里 website.port(默认 9080) +./start.sh # 监听 FOMS_PORT(默认 9080) +./stop.sh ``` 启动时 `load_foms()` 会自动注册切换编排器并拉起健康判定器后台任务。 +**URL 布局**(conf/config.json website.paths): +- foms 核心:根路径(`/api/...`、`/clusters_list`、`/nodes_list`) +- dbbackup:`/dbbackup/...` filesync:`/filesync/...` hostwatch:`/hostwatch/...` + + ## 三、管理中心登记拓扑(部署后必做) 在 FOMS 界面(或 API)依次创建: @@ -165,9 +177,10 @@ Agent 以能执行 `systemctl`/`ip`/`mysql` 的用户运行(通常 root)。* - **远程命令安全**:命令下发目前无白名单鉴权(P1 待办),生产应收窄。 ## 八、模块清单 -| 模块 | 仓库 | 职责 | +| 仓库 | 角色 | 职责 | |---|---|---| -| foms(核心) | yumoqing/foms | 集群/节点/切换编排/心跳/远程命令 | -| dbbackup | yumoqing/dbbackup | 数据库备份 + 日志同步(binlog 复制) | -| filesync | yumoqing/filesync | 运行文件同步(rsync) | -| hostwatch | yumoqing/hostwatch | 日志监控 + 日志分析 + 主机指标 | +| foms_app | 纯伞(应用壳) | 组装入口、build、配置、启动、首页、RBAC 注册(无业务逻辑) | +| foms | 业务模块(核心) | 集群/节点/切换编排/心跳/远程命令/Agent | +| dbbackup | 业务模块 | 数据库备份 + 日志同步(binlog 复制) | +| filesync | 业务模块 | 运行文件同步(rsync) | +| hostwatch | 业务模块 | 日志监控 + 日志分析 + 主机指标 |