考虑到一个状态文件:kafka.sls,用于部署和配置kafka集群。
现在,我们需要一些支柱数据进行配置,对于全局配置,我们可以将其放在以下支柱/kafka.sls中:
kafka:
cluster:
name: my-kafka-cluster
log_dir: /data/kafka/
autocreate_topic: true
在top.sls中
base:
'role:Kafka':
- kafka
现在,我们需要为每个代理配置不同的配置:broker.id
我应该在哪里放broker.id
?
我知道的唯一方法是在支柱中使用if / else。但这确实是一个坏习惯。
kafka:
cluster:
name: my-kafka-cluster
log_dir: /data/kafka/
autocreate_topic: true
broker_id: {% if grains.get['minion_id'] == HOSTNAME ... %}
top.sls中的OR:
base:
'role:Kafka':
- kafka
'minion_id':
- kafka_settings_for_minion_id
什么是最好的方法?
答案 0 :(得分:0)
您可以将每个小兵的支柱数据文件放置在column_roots / minions /下,然后将以下代码添加到顶级文件中
base:
'*':
- minions.{{ grains['id'] }}