saltstackDevOps

saltstack中的top.sls路径问题

2016-04-15  本文已影响1532人  zczhuohuo

额,我承认,我一开始搞不清楚 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

由于在官方文档的示例中 basedev 放在同一个 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。

上一篇下一篇

猜你喜欢

热点阅读