2

我是 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 条目。

4

2 回答 2

1

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

prod:
  '*':
    - user
于 2014-07-17T23:05:44.327 回答
0

你不能使用你想要的语法。

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

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

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

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

于 2014-12-29T21:44:10.947 回答