我怎样才能在一个柱子顶部文件循环所有的爪牙?

我想添加一些通用支柱数据的angular色,但也提供了一种方法来定制每台机器的主机名(minion id)。

在我的支柱/ top.sls文件中

base: '*': - pkgs/common-ubuntu-pkg - fail2ban/config 'runit:True': - runit/package 'is_virtual:True': - users/vmuser 'role:database': - match: grain - mysql/defaults 

然后我想添加这样的东西:

 {% for host in pillar %} '{{host}}': include: - {{host}}/passwords {% endfor %} 

哪个工作,但只打印出“主”。 我正在使用无盐的ssh,所以我相信这就是为什么名单中的奴才不在柱子里的原因。 我想要一个不同的方式来循环定义的小兵,但我似乎无法轻松地看到盐词典中的内容。

 {% for key in salt %} '{{key}}': include: - foobar {% endfor %} 

尝试使用类似上面的结果在一个KeyError中进行debugging

这个解决scheme并不是使用jinja在pillar.top文件中,而是使用一个外部的柱子插件。

外部支柱插件“file_tree”位于目录主机和节点组的root_dir下。 将minion_ids与root_dir / hosts /下的目录相匹配,它会将所有的.sls文件作为支柱数据添加到该主机/小盘。

 #in /etc/salt/master ext_pillar: - file_tree: root_dir: /srv/salt/my-pillars/ follow_dir_links: False raw_data: False #on disk /srv/salt/my-pillars/hosts/mydbserver/passwords.sls 

https://docs.saltstack.com/en/latest/ref/pillar/all/salt.pillar.file_tree.html#module-salt.pillar.file_tree