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

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

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

在/etc/salt/minion中:

master: 127.0.0.1
file_roots:
  base:
    - /srv/salt/base

在/etc/salt/主服务器中:

interface: 0.0.0.0

/srv/salt 树:

 # tree srv/
srv/
├── salt
│   └── base
│       └── env
│           ├── envpy.template
│           └── init.sls
└── top.sls

和模板文件:

# cat /srv/salt/base/env/envpy.template
This is a test !

这是初始化文件:

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

/home/myHome/env.py:
  file:
    - managed
    - source: salt://base/env/envpy.template

最后是顶级文件:

# cat  /srv/salt/top.sls 
base:
  '*':
    - base.env

运行 salt 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

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

答案1

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

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

file_roots应声明于/etc/salt/master

答案2

我在这里遇到了同样的问题。但是,我的原因是主服务器和从服务器之间的时间/时区不同。

在 minion 上运行 dpkg-reconfigure tzdata 后,该问题得到解决。

答案3

我遇到了同样的问题。在我的例子中,top.sls 文件中有一个重复的 minion 通配符模式。Salt 没有告诉我文件有问题,而是说它不存在。

相关内容