minion id:localhtml
master上多環境配置:一個base環境,一個test環境markdown
file_roots: base: - /srv/salt/base test: - /srv/salt/test
每一個環境下分別建立top.sls:
app
cat base/top.sls # base環境中的top.sls,包含base環境的state定義(test1)和test環境的state定義(test2) base: 'local': - test1 test: 'local': - test2
cat test/top.sls # test環境中的top.sls,只有test環境的state定義(test3) test: 'local': - test3
使用 salt 命令執行state模塊的show_top方法,能夠查看minion將會執行的top file,配合saltenv參數,能夠切換不一樣的環境。ide
執行命令:salt local state.show_top 輸出:測試
local: ---------- base: - test1 test: - test2
執行命令:salt local state.show_top saltenv=base 輸出:spa
local: ---------- base: - test1
執行命令:salt local state.show_top saltenv=test 輸出:orm
local: ---------- test: - test3
當不指定執行環境時,salt會執行base環境中的top.sls裏定義的全部state。如例子中的test1和test2。htm
當指定執行環境爲base時(saltenv=base),salt只會執行base環境中的top.sls裏base定義的state。如例子中的test1。get
當指定執行環境爲test時(saltenv=test),salt只會執行test環境中的top.sls裏base定義的state。如例子中的test3。it