confd一般结合etc、consul等配置管理工具使用,用来动态生成配置文件重新载入程序等。网上可以参考的blog很多,最近用到consul时,实验过confd最后由于种种原因没有上线,也写篇blog凑凑热闹啦!下面是confd和consul结合的使用,其实consul就只存储k/v。
1、下载confd的二进制文件,放到相应的目录,根目录/usr/local/confd,下面的目录结构如下:
1 | [root@xx-xx-xx-xxxxx confd]# tree -d |
将下载的二进制程序放到bin目录,然后做个软链接指向/usr/local/bin
1 | ln -s /usr/local/confd/bin/confd /usr/local/bin/ |
2、在conf.d目录配置TOML配置文件
TOML语法参考:https://github.com/toml-lang/toml
例如:
1 | $ cat conf.d/abc.bacde.com.conf.toml |
3、在templates目录配置模版文件
格式参考:https://github.com/kelseyhightower/confd/blob/master/docs/templates.md
例如:
1 | $ cat templates/abc.bacde.com.conf.tmpl |
4、启动confd测试。
1 | confd -confdir="/usr/local/confd/" -config-file="/usr/local/confd/conf.d/abc.abcde.com.conf.toml" -interval=1 -backend=consul -node 127.0.0.1:8500 -log-level="debug" -watch=true |
检查TOML配置的目标文件是否正确,然后放入后台作为守护进程运行,也可以用supervisord守护运行。经过测试,如果check_cmd失败的话,reload_cmd是不会执行的,可以放心大胆的用。