如何在top.sls文件中的saltstack支柱函数声明中使用星号(*)?

时间:2014-03-20 07:14:32

标签: automation salt-stack

我是Saltstack自动化的新手,并且想知道是否有办法在saltstack支柱函数声明中使用星号(*)。让我向您解释所有细节。

我的生产环境的支柱根源是

======
# grep -i pillar_root -A3 /etc/salt/master 
pillar_roots:
  prod:
    - /srv/pillar
======

我在/ srv / pillar目录中有top.sls文件,下面给出了该文件的内容。

======
# cat /srv/pillar/top.sls
prod:
  '*':
    - user.avatar_user
    - user.avatar_sudo_user
======

我将在/ srv / pillar / user /目录中添加* .sls文件。但是,如果有这样的方式,请告诉我

======
prod:
  '*':
    - user.*
======

因此,我不需要在top.sls中添加相应的sls条目。

2 个答案:

答案 0 :(得分:1)

您可以创建一个user / init.sls文件,该文件显式包含其目录中的其余用户文件。然后你需要在top.sls文件中做的就是包括:

prod:
  '*':
    - user

答案 1 :(得分:0)

您无法使用您想要的语法。

您可以使用jinja shell并列出该目录中的所有文件。这可能看起来像这样: /srv/pillar/top.sls的内容:

{% user_pillars = salt['cmd.run']('ls /srv/pillar/user*').split() %}

prod:
  '*':
{% for dir in user_pillars %}
    - {{ dir }}
{% endfor %}

我还没有测试过这个确切的代码,但它应该接近这一点。