2016-03-03 32 views
0

我有以下saltstack顶部文件的PHP-应用的“无匹配的SLS。发现在ENV“基地”

'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' 

我去附庸服务器,发现init.sls文件php-apps不被复制到马仔缓存位置/var/cache/salt/minion/files/base/php-apps

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

我尝试以下,但它仍然无法正常工作。

  • 清除主缓存
  • 清除奴才缓存
  • 重新从头

我缺少的是奴才?请让我知道是否需要其他信息。

+0

你可以试试这个而且它对主人没有任何帮助。另一件事是删除盐主人的配置,重新启动它,重新创建它。这样你就可以迫使他重新塑造一切。 – tudoricc

回答

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转换为修复空格,它也会遇到tab和space缩进问题。所以你看到哪些文件已there.From你说的话,好像你使用git`盐奴才cp.list_master saltenv = base`或'盐“*” state.show_sls文件base`:

+0

这是因为选项卡。我在编辑器(Atom)上显示了特殊的字符。 – bitkot

+1

saltstack开发者应该将其放在他们的“saltstack最佳实践”之下。 ;-) – mootmoot