midhungovind-cpu/ha-infrastructure-lab

GitHub: midhungovind-cpu/ha-infrastructure-lab

一个纯浏览器端的高可用基础设施事件响应模拟器,通过持久化虚拟 Linux 节点提供零风险的集群故障诊断与恢复演练环境。

Stars: 0 | Forks: 0

# HA 基础设施实验室 基于浏览器、具有持久化虚拟 Linux 节点的交互式高可用事件响应模拟器。 它模拟了虚构的类 CentOS 8 节点、集群、复制、存储事件,以及一个使用白名单机制的 Linux 风格终端。它没有任何外部连接,也绝不会在宿主机上执行输入的命令。 ![HA 概念参考架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/15/153350ea180fe5a0e2e2e5520d74ea83e4dbfbd3d9878d75ddf404b15203c12f.png) ## 演示内容 - 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环境, 运维培训, 高可用架构