在env'base'找不到与'php-apps'匹配的sl

时间:2016-03-03 17:25:36

标签: salt-stack

我有以下的saltstack顶级文件。

  'blog.php.*':
    - php-apps
    - php-apps.blog

  'app.php.*':
    - php-apps
    - php-apps.some-app

  '*phpone*':
    - php-apps
    - php-apps.blog
    - php-apps.some-app

当我为上述环境运行高状态时它工作正常。像这样

salt 'blog.php.*' state.highstatesalt 'app.php.*' state.highstate

但是当我为第三台服务器运行它时,它失败了。

salt '*phpone*' state.highstate

错误:

No matching sls found for 'php_apps' in env 'base'

我去了minion服务器,发现init.sls中的php-apps文件没有被复制到minion缓存位置/var/cache/salt/minion/files/base/php-apps

我无法找到任何可能导致此问题的编译错误的状态文件日志。

我尝试了以下但它仍然不起作用。

  • 清除主缓存
  • Cleared minion cache
  • 从头开始重新制作小兵

我错过了什么?如果需要任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

首先,我将使用yaml验证器来验证yaml元结构。即..安装kwalify

#install kwalify
sudo apt-get install kwalify
# Now try to check the top file with yaml meta-validation 
kwalify -m top.sls 
# to check many yaml sls file
find . | grep "sls"  | xargs   kwalify -m 

当盐不能验证最基本的元结构时,不要感到惊讶。

因为使用YAML的saltstack,如果你没有强制你的编辑器将所有TABS转换为修复空格,它也会遇到制表符与空格缩进问题。