额,我承认,我一开始搞不清楚 saltstack 是如何搜索 top.sls的。
假设我的 file_roots 设置如下:
foot_roots
base:
- /srv/salt/
dev:
- /srv/salt/dev/
online:
- /srv/salt/online/
testsvr:
- /srv/salt/testsvr/
我的/srv/salt/top.sls设置如下:
base:
'*':
- mysql
dev:
'*':
- redis
那么执行以下的语句时,很容易理解,saltstack 是否所 base 下的 top.sls,即 /srv/salt/top.sls
salt '*' state.apply
但是如果执行就会报找不到 top.sls 的错误。
salt '*' state.apply saltenv=dev
由于在官方文档的示例中 base 和 dev 放在同一个 top.sls 里面,我就想当然的以为当 state.apply 加上 saltenv=dev 参数时,还是会去搜索 /srv/salt/top.sls 文件,然后对于不同的环境,很智能地去搜索相应路径下的 sls 文件。困惑了半天之后,才发现,如果state.apply加上slatenv=dev参数,saltstack是会去搜索file_roots定义的dev环境路径下的top.sls,而不是我一开始意料的/srv/salt/top.sls。
网友评论