consul-template 是 Consul 的一个守护程序,使用 consul-template 可以方便快速的实现对 Consul Key/Value 存储系统的访问,可以从 KV 系统中读取数据、监视变动、同步本地文件;还可以在执行模板更新的同时,执行本地系统命令,比如常见的就是在同步数据到本地模板文件后,生成 Nginx 配置文件,并执行 nginx -s reload 命令,使 Nginx 重新加载配置文件。
consul-template 的特点
- 智能发现:一旦开始运行 consul-template ,consul-template 将会自动的发现 Consul 中的 Key/Value 变更,并自动更新到本地模板文件
- 重复过滤:consul-template 内部可以跨实例对数据进行重复筛选,多个 consul-template 实例进行选举,确定只有一个 consul-template 执行 KV 查询,然后将结果同步到其它 consul-template 实例,在命令行中使用 -dedup 标记或者在配置文件中配置“deduplicate” 来启用重复过滤功能
- 快速使用:支持命令行和配置文件,有多种方法可以运行Consul Template,但最常见的模式是将Consul Template作为系统服务运行。
- Dry Mode:在Dry模式,Consul-Template会将结果呈现在STDOUT,操作员可以检查输出是否正常,以决定更换模板是否安全。