我在nfs服务器上设置了git。 salt master在引导时自动安装包含git存储库的文件夹。我已将.sls文件,模板和脚本复制到git目录并将它们添加到git中。
根据指南here:
,我已将以下内容添加到主配置文件中fileserver_backend:
- git
gitfs_remotes:
- file:///mnt/git-repo
我对将file_roots设置为什么感到疑问,但是已经尝试过两次
- /srv/salt
和
- /mnt/git-repo
具有相同的结果:“没有找到顶级文件或外部节点数据匹配”
SaltStack版本为0.17.4,OS为SLES 11.2。
有谁知道我哪里出错了?
答案 0 :(得分:1)
这部分对我来说不合适,因为我在本地文件系统上没有任何内容。
fileserver_backend:
- git
- roots
我把它改为:
fileserver_backend:
- git
easy_install GitPython
我的配置是:
gitfs_provider: gitpython
gitfs_remotes:
- ssh://git.example.com/salt-states.git:
- pubkey: /root/.ssh/id_rsa.pub
- privkey: /root/.ssh/id_rsa
但是查看日志tail /var/log/salt/master
:
2015-02-24 14:25:37,162 [salt.loaded.int.fileserver.gitfs] [CRITICAL] GitFS身份验证参数' privkey' (来自远程ssh://git.example.com/salt-states.git)仅受以下提供程序支持:pygit2。目前的gitfs_provider是' gitpython'。有关详细信息,请参阅Salt文档中的GitFS演练。
gitfs_provider: gitpython
gitfs_remotes:
- ssh://git.example.com/salt-states.git
其他所有内容(IdentityFile
)都在/root/.ssh/config
中指定。
我从以前的实验中得到了剩余的数据;所以我不得不清理缓存:
rm -rf /var/cache/salt/*
答案 1 :(得分:0)
确保在主分支的根目录中有一个top.sls文件,并且在修改主配置文件后重新启动了salt-master守护程序。
答案 2 :(得分:0)
实际上解决这个问题的是盐主程序包升级,似乎他们的api在某种程度上在版本之间是不兼容的,所以安装的较新的salt-minion并没有正确地同步file_roots。
答案 3 :(得分:0)
可能是您尝试使用挂载点并将文件根目录放在两个不同的位置。我刚才有类似的问题: SaltStack and GitFS - No Top file or external nodes data matches found
我的解决方法是删除挂载。
答案 4 :(得分:0)
我在顶层文件的评论中使用了错误的jinja命令时遇到了这个问题。一定要看看奴才的日志。
答案 5 :(得分:-1)
克隆存储库时显示以下消息“警告:您似乎克隆了一个空存储库”。 (感谢@Jason Zhu)它这样做是因为虽然文件已添加到存储库,但它们没有被提交。
解决问题我:
从主配置文件中删除了file_roots,因为在使用gitfs时不需要它(感谢@basepi)
重新启动salt-master,强制更改主配置文件(感谢@Utah_Dave)
将添加的文件提交到存储库