背景:

公司的测试、预发布环境的配置修改在前期都是通过手工登录到服务器上去vim配置文件的,这样一来就会产生一定的安全或者误操作以及频繁的操作真的是有些恶心的;去年在此基础上也为运营/测试使用Flask 写了一个平台让他们自己用;但是由于一些不定因素,不能够满足这方面的需求;但是本人还是坚持以自动化的理念来操作;所以学习了解了一下自动配置的一些工具,比如Consul,当然他的原理功能网上有很多;也没有必要在这里再一次说了;主要记录一下对于这个需求的一个想法到实现的过程。”妈妈再也不担心我vim错配置啦~~~😁”


这是前期为运营人员使用Flask开发的一个平台,主要日常涉及到的操作(测试/预发布环境)

下面是针对以上一些操作规划的一个拓扑图:

这里我主要使用到了consul的k/v存储以及consul-template动态的配置系统

  1. 操作人员通过Opsplatform操作后,通过调用consul-http-api将最新的key/value put到consul-datacenter;
  2. 客户端服务器添加对应的模板文件,通过consul-template命令启动监控模板文件
  3. 当有新的key/value put到consul-datacenter时,consul-template根据模板文件替换掉里面的kv
  4. 在启动监控模板文件时也可以增加后续的操作,例如:
     客户端连接到consul-http-api,指定模板文件以及输出文件,然后指定模板文件替换成功后执行其他命令例如上图中的date命令… 整个过程无需人员操作。

当然这里只是用到了consul的冰山一角,也是作为一个方向去实现各种需求~

通过reqeusts来操作key/value