我有以下的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.highstate
或salt '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
我无法找到任何可能导致此问题的编译错误的状态文件日志。
我尝试了以下但它仍然不起作用。
我错过了什么?如果需要任何其他信息,请告诉我。
答案 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转换为修复空格,它也会遇到制表符与空格缩进问题。