【问题标题】:How to use asterisk (*) in saltstack pillar function declaration in top.sls file?如何在 top.sls 文件的 saltstack 支柱函数声明中使用星号 (*)?
【发布时间】:2014-03-20 07:14:31
【问题描述】:

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

【问题讨论】:

    标签: automation salt-stack


    【解决方案1】:

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

    prod:
      '*':
        - user
    

    【讨论】:

      【解决方案2】:

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

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

      {% user_pillars = salt['cmd.run']('ls /srv/pillar/user*').split() %}
      
      prod:
        '*':
      {% for dir in user_pillars %}
          - {{ dir }}
      {% endfor %}
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多