2

我已经在 nfs 服务器上设置了 git。salt master 在启动时自动挂载包含 git 存储库的文件夹。我已将 .sls 文件、模板和脚本复制到 git 目录并将它们添加到 git。

根据此处的指南,我已将以下内容添加到主配置文件中:

fileserver_backend:
  - git

gitfs_remotes:
  - file:///mnt/git-repo

我对将 file_roots 设置为什么有疑问,但都尝试过

- /srv/salt

- /mnt/git-repo

结果相同:“未找到顶级文件或外部节点数据匹配”

SaltStack 版本为 0.17.4,操作系统为 SLES 11.2。

有谁知道我哪里出错了?

4

6 回答 6

1

配置不当

这部分对我来说不合适,因为我在本地文件系统上没有任何东西。

fileserver_backend:
  - git
  - roots

我将其更改为:

fileserver_backend:
  - git

缺少 GitPython

easy_install GitPython

错误的配置(GitPython vs pygit2)

我的配置是:

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/*

于 2015-02-24T22:44:41.243 回答
0

确保您的 master 分支的根目录中有一个 top.sls 文件,并且您在修改 master 配置文件后重新启动了 salt-master 守护程序。

于 2014-01-20T21:57:04.123 回答
0

为我解决这个问题实际上是 salt-master 包升级,似乎他们的 api 在版本之间以某种方式不兼容,所以安装的新 salt-minion 没有正确同步 file_roots。

于 2014-04-08T18:44:01.243 回答
0

可能是您尝试在两个不同的位置使用挂载点和文件根目录。前段时间我遇到了类似的问题: SaltStack and GitFS - No Top file or external nodes data matches found

我的解决方法是移除支架。

于 2016-05-04T21:55:49.980 回答
0

在顶部文件的注释中使用错误的 jinja 命令时,我遇到了这个问题。确保查看 minion 的日志。

我打开的相关问题:https ://github.com/saltstack/salt/issues/47612

于 2018-05-11T16:00:04.773 回答
-1

克隆存储库会给出以下消息“警告:您似乎克隆了一个空存储库”。(感谢@Jason Zhu)这样做是因为虽然文件已添加到存储库中,但它们并未提交。

为了解决我的问题:

  1. 从主配置文件中删除了 file_roots,因为使用 gitfs 时不需要它(感谢@basepi)

  2. 重新启动 salt-master,以强制更改主配置文件(感谢 @Utah_Dave)

  3. 将添加的文件提交到存储库

于 2014-01-21T08:06:35.137 回答