docs: 部署手册更新为 foms_app 纯伞化后的流程(clone foms_app + build + start.sh + URL 布局)
This commit is contained in:
parent
dedb7bfc57
commit
1c85297af1
@ -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 | 业务模块 | 日志监控 + 日志分析 + 主机指标 |
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user