salt-stack : 没有找到顶部文件或外部节点数据匹配

4m1*_*4j1 5 python saltstack

为了测试 salt-stack,我想将一个配置文件复制到另一个远程(我正在本地主机中测试 master 和 minion)

/etc/salt/minion :

master: 127.0.0.1
file_roots:
  base:
    - /srv/salt/base
Run Code Online (Sandbox Code Playgroud)

/etc/salt/master:

interface: 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

/srv/salt 树:

 # tree srv/
srv/
??? salt
?   ??? base
?       ??? env
?           ??? envpy.template
?           ??? init.sls
??? top.sls
Run Code Online (Sandbox Code Playgroud)

和模板文件:

# cat /srv/salt/base/env/envpy.template
This is a test !
Run Code Online (Sandbox Code Playgroud)

这是初始化文件:

#  cat /srv/salt/base/env/init.sls 

/home/myHome/env.py:
  file:
    - managed
    - source: salt://base/env/envpy.template
Run Code Online (Sandbox Code Playgroud)

最后是顶级文件:

# cat  /srv/salt/top.sls 
base:
  '*':
    - base.env
Run Code Online (Sandbox Code Playgroud)

运行盐highstate:

# salt '*' state.highstate 
myHost:
----------
          ID: states
    Function: no.None
      Result: False
     Comment: No Top file or external nodes data matches found
     Started: 
    Duration: 
     Changes:   

Summary
------------
Succeeded: 0
Failed:    1
------------
Total states run:     1
Run Code Online (Sandbox Code Playgroud)

你知道为什么我有这个错误吗?

小智 4

路径是相对于你的基点 ( /srv/salt/base) 的。

尝试将顶级文件移动到“base”目录。还要从文件“source”引用中的路径中删除“base”。

file_roots应该声明在/etc/salt/master

  • 另请检查“/var/log/salt/minion”中的错误消息,这可能是由于缺少“sls”文件引起的,例如“发生渲染异常:Jinja 变量“dict object”没有属性“newrelic””。 (2认同)