This commit is contained in:
@@ -43,6 +43,7 @@ graph TD
|
||||
- `postgresql_ha/` — 生产级 PostgreSQL HA 集群(Patroni + etcd + HAProxy + Keepalived + pgBackRest)
|
||||
|
||||
**角色划分:**
|
||||
|
||||
- `mysql/` — 完整的 MySQL 原生交付生命周期
|
||||
- `postgresql-deploy.yml` / `postgresql-rollback.yml` — 轻量级单机/主从 PostgreSQL
|
||||
- `postgresql_ha/` — 生产级 PostgreSQL HA 集群(Patroni + etcd + HAProxy + Keepalived + pgBackRest)
|
||||
@@ -57,9 +58,6 @@ graph TD
|
||||
| Playbook | 职责 |
|
||||
|----------|------|
|
||||
| `deploy.yml` | 唯一部署入口:回调(precheck) → 参数校验 → MHA 制品安装 → 回调(install) → MySQL 二进制安装 → 回调(configure) → 账号配置 → 复制配置 → MHA 配置 → 回调(healthcheck) → TCP 端口检查 → 回调(register) |
|
||||
|
||||
!!! note "💡 Deploy 流水线"
|
||||
`deploy.yml` 是 MySQL 唯一部署入口,通过回调机制(callback.yml)向 AWX 上报进度。每个阶段都有独立回调,支持前端实时追踪任务状态。
|
||||
| `precheck.yml` | 只读预检查:Python 脚本检查磁盘空间、内存、端口、制品可用性、目录冲突,输出结构化 JSON |
|
||||
| `rollback.yml` | 回滚:停止 MHA Manager → 清理 SSH 授权 → 删除 MHA 工作目录 → 停止实例 → 删除配置/二进制/数据/运行时目录 |
|
||||
| `failover.yml` | 两阶段切换:(1) 普通 primary_replica 主从切换(无 MHA)(2) MHA 模式切换(masterha_master_switch) |
|
||||
@@ -71,6 +69,9 @@ graph TD
|
||||
| `rejoin.yml` | 旧主重加入:备份旧数据 → Clone 接收 → 新 server_uuid → GTID 复制 → 校验一致性 |
|
||||
| `restore.yml` | 恢复已下线实例:校验下线标记 → 启动实例 → 验证 UUID 和数据可读 |
|
||||
|
||||
!!! note "💡 Deploy 流水线"
|
||||
`deploy.yml` 是 MySQL 唯一部署入口,通过回调机制(callback.yml)向 AWX 上报进度。每个阶段都有独立回调,支持前端实时追踪任务状态。
|
||||
|
||||
### 2.2 公共变量 (`vars/delivery.yml`)
|
||||
|
||||
**核心变量:**
|
||||
@@ -101,6 +102,7 @@ graph TD
|
||||
```
|
||||
|
||||
**账号体系(7 个内置账号):**
|
||||
|
||||
- `xinfra_repl` — 复制
|
||||
- `xinfra_clone` — Clone
|
||||
- `xinfra_mha` — MHA
|
||||
@@ -110,6 +112,7 @@ graph TD
|
||||
- `xinfra_config` — 参数管理
|
||||
|
||||
**二进制制品目录(`mysql_binary_catalog`):**
|
||||
|
||||
- `8.0` — full_version=8.0.46,含 SHA256 校验和下载地址
|
||||
- `8.4` — full_version=8.4.8,含 SHA256 校验和下载地址
|
||||
|
||||
@@ -247,6 +250,7 @@ graph LR
|
||||
- **备份冗余:** pgBackRest 双仓库(repo1/repo2 分布在不同节点)
|
||||
|
||||
**关键设计:**
|
||||
|
||||
- DCS:独立 etcd 3 节点集群(非系统 etcd)
|
||||
- VIP:通过 Keepalived unicast 模式在 3 个 HAProxy 之间漂移
|
||||
- HAProxy 通过 Patroni REST API `/primary` 健康检查路由到主库
|
||||
|
||||
Reference in New Issue
Block a user