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

Automation 如何在top.sls文件的saltstack支柱函数声明中使用星号(*)?,automation,salt-stack,Automation,Salt Stack,我是saltstack自动化新手,想知道是否有办法在saltstack支柱函数声明中使用星号(*)。让我向你解释所有的细节 我的prod环境支柱是 ====== # grep -i pillar_root -A3 /etc/salt/master pillar_roots: prod: - /srv/pillar ====== 我在/srv/pillar目录中有top.sls文件,该文件的内容如下所示 ====== # cat /srv/pillar/top.sls prod:

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

我的prod环境支柱是

======
# 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条目。

您可以创建一个user/init.sls文件,该文件在其目录中明确包含其余的用户文件。然后,您需要在top.sls文件中执行的所有操作包括:

prod:
  '*':
    - user

你不能使用你想要的语法

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

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

prod:
  '*':
{% for dir in user_pillars %}
    - {{ dir }}
{% endfor %}
我还没有测试过这段代码,但应该已经接近了