环境
minion id:local
master上多环境配置:一个base环境,一个test环境
file_roots:
base:
- /srv/salt/base
test:
- /srv/salt/test
每个环境下分别创建top.sls:
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参数,可以切换不同的环境。
执行命令:salt local state.show_top 输出:
local:
----------
base:
- test1
test:
- test2
执行命令:salt local state.show_top saltenv=base 输出:
local:
----------
base:
- test1
执行命令:salt local state.show_top saltenv=test 输出:
local:
----------
test:
- test3
结论
当不指定执行环境时,salt会执行base环境中的top.sls里定义的所有state。如例子中的test1和test2。
当指定执行环境为base时(saltenv=base),salt只会执行base环境中的top.sls里base定义的state。如例子中的test1。
当指定执行环境为test时(saltenv=test),salt只会执行test环境中的top.sls里base定义的state。如例子中的test3。
转载于:https://blog.51cto.com/jabba/1981169