动态填充顶级文件中的状态列表

Dynamically populate list of states in top file

我正在做类似 TOP 文件中的事情:

'roles:*database*':
    - match: grain
    - {{ salt['pillar.get']("server:database:states") }}

在支柱中,状态是根据角色定义的:

server:
  database:
    states:
      - module1.applySecPatch
      - module2.firewallRules

我没有收到错误,并且在 TRACE 级别也没有有用的日志记录。这是动态填充状态文件列表的正确方法吗?

这个答案实际上是由 Seth House 在 Salt-users 组上回答的,只是为了其他人的利益发在这里

语法不太正确。

 'roles:*database*': 
    - match: grain 
    - {{ salt['pillar.get']("server:database:states") }} 

会产生一些不正确的东西,例如:

 'roles:*database*': 
    - match: grain 
    - ['module1.applySecPatch', 'module2.firewallRules'] 

你需要一个循环。更像是这样的:

'roles:*database*': 
    - match: grain 
    {% for file in salt['pillar.get']("server:database:states") %} 
    - {{ file }} 
    {% endfor %}