iconf

背景

假如你有一个100台左右的集群,你想更新一个 nginx 配置,你会怎么做? 可能你会用ansible,puppet 或则salt,但是有些场景下,是不允许某些用户有这么高的自由度的。而且这些配置管理工具也没有审批流程来规避人为失误。 iconf并不是想替代上面这些配置管理工具,它也替代不了。它只是一个简单的文件配置同步系统,简单实现web化的一处修改,多台同步的功能。


系统架构设计

UI:         采用react实现
Server:     提供UI操作接口
MongoDB:    存储数据
etcd:       下发配置任务
Agent:      执行配置任务,上报执行状态

目标

  1. 登录模块采用域账户和Google TOTP动态密码双层验证,提高系统安全性
  2. 配置下发支持后置命令进行check和reload
  3. 并发执行,为防止某些服务同一时间全部reload而出现服务中断,每台机器会随机一个0~2000ms的时间进行delay
  4. 支持审批,最大限度防止人为失误
  5. 支持配置修改diff在线查看
  6. 支持配置回滚
  7. 支持灰度发布
  8. 支持审计

Show