Minion没有获得多个支柱来源

时间:2016-09-08 07:27:02

标签: salt-stack

我有一个问题,即一个仆从没有获取两个支柱信息来源,而只是选择了最后一个来源。例如,以下是我的/srv/pillar/top.sls:

base:
  'client.id':
    - users.support
    - users.dev

我的/srv/pillar/users/support.sls的内容如下:

users:
  - name: supportname
    fullname: Name of Support user
    uid: 1001
    groups:
      - sudo
      - support

我的/srv/pillar/users/dev.sls的内容如下:

users:
  - name: devname
    fullname: Name of Dev user
    uid: 1002
    groups:
      - dev

调用salt 'client.id' pillar.items时,它只显示最后指定的支柱(对于此示例,仅显示dev信息)。如果我要切换订单,则会显示相反的内容。我真的很难过可能导致这种情况的原因。

非常感谢任何帮助。

非常感谢,

大卫

1 个答案:

答案 0 :(得分:1)

目前,SaltStack对支柱的合并策略有限[1]。在您的情况下,users键被定义为列表。列表不能合并为支柱,因此最后解析的支柱会获胜。这就是你所看到的。

但是,如果密钥不同,则会合并dicts。您可以根据需要使用它:

/srv/pillar/users/support.sls:

users:
  supportname:
    fullname: Name of Support user
    uid: 1001
    groups:
      - sudo
      - support

/srv/pillar/users/dev.sls:

users:
  devname:
    fullname: Name of Dev user
    uid: 1002
    groups:
      - dev

您将以users字典结尾,其中包含两个条目:supportnamedevname。然后,您可以使用for username, userdef in salt['pillar.get']('users', {}).iteritems()循环播放它,例如。

[1] https://docs.saltstack.com/en/latest/topics/pillar/#pillar-namespace-merges