2015-12-14 43 views
1

我做這樣的事情在TOP文件下的國家名單:動態填充頂層文件

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

而且在支柱的狀態是基於角色定義的:

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

我不出現錯誤,TRACE級別也沒有幫助。這是動態填充狀態文件列表的正確方法嗎?

回答

1

這樣的回答實際上是由Seth衆議院鹽用戶羣回答,只是在這裏發帖對他人

語法的好處是不完全正確。

'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 %}