为了测试 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 没有告诉我文件有问题,而是说它不存在。