我们正在考虑使用Consul的键值存储来增强我们的配置管理工具(Ansible,目前)。我们希望用它来解决两个相关的问题:
我们正在寻找一套关于如何使用/集成Consul(或类似工具)进行动态配置的建议。当然,没有一个答案,但这里有一套有用的做法。我会在答案中提供一些方法,但我想听听其他想法。
答案 0 :(得分:3)
为了缓解#1,我建议查看Hashicorps Vault https://www.vaultproject.io/,这是一个处理机密的工具,可以使用Consul作为后端。
答案 1 :(得分:2)
我们一段时间以来一直在修改Consul作为键值存储,但我认为最有趣的用途是Consul Template,并使用它来动态更新配置。
我认为我们可能会走向的最终状态将是使用Ansible来配置我们知道变化缓慢的基础图像加配置Consul Template,然后是AMI(这可能是前两个步骤)通过Packer)然后使用Terraform(我们已经用于配置)在AWS中部署到自动扩展组中。
然后我们将使用Consul的键值存储来更改Consul Template将在一组实例中传播的属性。我们还打算让实例在Consul中注册,这也将影响其他实例的配置,例如Apache / NGINX配置上的负载平衡成员或用于群集的单播可寻址成员列表。
在一个稍微相关的说明上,mentioned作为mahnve,Vault是一个非常好的补充,用于存储秘密。我们已经将它用于漂亮的静态秘密,但打算开始使用一些动态秘密生成,它允许您请求可以跟踪和撤销的短期API或SSH密钥。
答案 2 :(得分:1)
- debug: msg='key contains {{item}}'
with_consul_kv:
- 'key/to/retrieve'
因此,我们可以使用Consul的值直接填充我们的剧本。