iconf
背景
假如你有一个100台左右的集群,你想更新一个 nginx 配置,你会怎么做? 可能你会用ansible,puppet 或则salt,但是有些场景下,是不允许某些用户有这么高的自由度的。而且这些配置管理工具也没有审批流程来规避人为失误。 iconf并不是想替代上面这些配置管理工具,它也替代不了。它只是一个简单的文件配置同步系统,简单实现web化的一处修改,多台同步的功能。
系统架构设计
UI: 采用react实现
Server: 提供UI操作接口
MongoDB: 存储数据
etcd: 下发配置任务
Agent: 执行配置任务,上报执行状态
目标
- 登录模块采用域账户和Google TOTP动态密码双层验证,提高系统安全性
- 配置下发支持后置命令进行check和reload
- 并发执行,为防止某些服务同一时间全部reload而出现服务中断,每台机器会随机一个0~2000ms的时间进行delay
- 支持审批,最大限度防止人为失误
- 支持配置修改diff在线查看
- 支持配置回滚
- 支持灰度发布
- 支持审计