这里简单介绍一下state.sls 与 state.highstate 与区别,这也是自己在使用过程中的一点心得吧。
环境介绍:salt 2015.5.0 (Lithium)
top.sls
state.highstate 这个是全局的所有的环境的所有的状态生效;
state.sls 用来指定特定sls进行处理。
当使用 salt '*' state.highstate 没有任何问题
可是当执行 salt '*' state.sls servers_packages 发现没法执行
翻看官方文档发现:state.sls 是不会去读取top.sls 的如果没有指定saltenv 它就直接读取file_roots 里面的base。所以执行不了。
解决方法有两个:
1、在file_roots base 里添加dev路径
2、在有就是执行时添加路径
salt '*' state.sls dev.servers_packages
有的文章说指定 saltenv 可以解决,我发现在我的版本不支持。或者我指定的位置有问题吧,不过上面两种方法,亲测可以正常使用。