如何通过minion id设置saltstack支柱?

时间:2018-11-07 11:45:23

标签: salt-stack

考虑到一个状态文件: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

什么是最好的方法?

1 个答案:

答案 0 :(得分:0)

您可以将每个小兵的支柱数据文件放置在column_roots / minions /下,然后将以下代码添加到顶级文件中

base:
  '*':
    - minions.{{ grains['id'] }}