midhungovind-cpu/ha-infrastructure-lab
GitHub: midhungovind-cpu/ha-infrastructure-lab
一个纯浏览器端的高可用基础设施事件响应模拟器,通过持久化虚拟 Linux 节点提供零风险的集群故障诊断与恢复演练环境。
Stars: 0 | Forks: 0
# HA 基础设施实验室
基于浏览器、具有持久化虚拟 Linux 节点的交互式高可用事件响应模拟器。
它模拟了虚构的类 CentOS 8 节点、集群、复制、存储事件,以及一个使用白名单机制的 Linux 风格终端。它没有任何外部连接,也绝不会在宿主机上执行输入的命令。

## 演示内容
- Pacemaker 风格的资源管理和浮动 VIP 故障转移
- MySQL 复制和 DRBD 恢复工作流
- 有状态的模拟 SSH 会话和可编辑的虚拟服务器文件
- 引导式事件演练,需要进行诊断、修复和验证
- 浏览器本地快照、可重置的实验室状态,且无需访问真实基础设施
## 运行
```
npm start
```
然后打开 `http://localhost:4173`。或者直接在现代浏览器中打开 `index.html`。
## 测试
```
npm test
```
## 演示步骤
1. 打开终端并运行 `ssh root@mysql-core01`,然后运行 `systemctl stop mariadb`。
2. 运行 `pcs status` 和 `ip a` 以观察数据库恢复和 VIP 归属。
3. 运行 `mysql`,接着执行 `STOP SLAVE;`、`EXIT;`,并使用 `mysql -e "SHOW SLAVE STATUS\\G"` 进行检查。
4. 使用 `mysql -e "START SLAVE;"` 启动复制;状态在重新连接和页面刷新后依然存在。
5. 使用 **练习** 页面注入和重置故障,并使用 **快照** 来保留特定时间点的状态。
## 安全性
这是一个虚构的、仅限浏览器的培训模拟器。它从不连接、读取、写入或在真实基础设施上运行命令。所有 IP 地址、服务器名称、服务数据和事件证据均为模拟数据。
## 架构
- `src/state.js`:确定性的初始拓扑和持久化状态存储。
- `src/engine.js`:白名单终端解析器、虚拟文件系统和 HA 事件引擎。
- `src/app.js`:终端标签页、仪表板、场景 UI 和渲染。
- `lab-images/`:说明性虚构种子文件。运行时编辑仅存储在浏览器本地存储中。
该实现有意侧重于一致的操作行为,而不是模拟每一个 shell 功能。不支持的命令将返回 CentOS 风格的提示信息。
标签:事件响应模拟, 前端仿真, 数据可视化, 暗色界面, 灾难恢复演练, 自定义脚本, 虚拟Linux环境, 运维培训, 高可用架构