Cp-ansible: Kafka Broker 服务器属性文件中变量 {{broker.id}} 的命名空间

创建于 2019-04-02  ·  5评论  ·  资料来源: confluentinc/cp-ansible

在 kafka 代理属性的模板文件中,我们使用变量{{kafka.broker.id}}引用库存文件hosts.yml 。 但是{{kafka}}变量是在角色的defaults

由于Ansible 的变量优先级层次结构,这仍然会正确运行,因为{{kafka.broker.id}}将首先从inventory_host字典中获取,但为了清楚起见,最好不要混合命名空间。

我认为我们应该使用{{ inventory_hostname.kafka.broker.id }}来说明这一点。

enhancement

最有用的评论

我现在看到这就是ansible.cfg的合并属性正在做的事情。 我仍然认为这会使剧本的可读性降低并且更难学习。

所有5条评论

同样的事情发生在listeners=PLAINTEXT://:{{broker.config.port}} 。 在这种情况下, {{broker}}来自confluent.common/defaults/main.yml 。 在这里更好地命名空间将使事情更加清晰。

我现在看到这就是ansible.cfg的合并属性正在做的事情。 我仍然认为这会使剧本的可读性降低并且更难学习。

当我今天运行“confluent.kafka-broker”角色并花了几个小时找到它时,我遇到了同样的麻烦。

@chuck-confluent - 我今天遇到了这种情况。 当我更新 base_server_properties Jinja 模板以使用broker.id={{ inventory_hostname.kafka.broker.id }}并重新运行 Ansible 时,出现以下错误。 仍在尝试调试原因。

TASK [confluent.kafka经纪人:经纪人sasl_ssl配置] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
致命:[本地主机]:失败! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'ansible.parsing.yaml.objects.AnsibleUnicode object' 没有属性 'kafka'"}

@chuck-confluent 我们刚刚合并了以下 PR,这使得大多数(如果不是全部)属性都可以覆盖。 应该可以解决您所看到的问题。

https://github.com/confluentinc/cp-ansible/pull/124

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

luizm picture luizm  ·  18评论

OneCricketeer picture OneCricketeer  ·  6评论

LGouellec picture LGouellec  ·  4评论

Fobhep picture Fobhep  ·  12评论

Fobhep picture Fobhep  ·  12评论