小兵没有捡起多个支柱来源

Minion not picking up multiple pillar sources

我遇到了一个问题,一个 minion 没有获取支柱信息的两个来源,而是只获取了最后一个引用的来源。例如,以下是我的 /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时,它只会显示最后指定的支柱(对于这个例子,只会显示开发信息)。如果我要切换顺序,则会显示相反的内容。我真的不知道是什么原因造成的。

非常感谢任何帮助。

非常感谢,

大卫

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

但是,只要键不同,字典就会合并。您可以根据需要使用它:

/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