SaltStack 和 GitFS - 未找到顶级文件或外部节点数据匹配

SaltStack and GitFS - No Top file or external nodes data matches found

这是我的 /etc/salt/master 配置:

#GitFS
gitfs_provider: pygit2
gitfs_base: DEVELOPMENT
gitfs_env_whitelist:
  - base

fileserver_backend:
  - git
gitfs_remotes:
  - ssh://git@github.com/myrepo/salt-states.git:
    - pubkey: /root/.ssh/my.pub
    - privkey: /root/.ssh/my
    - mountpoint: salt:///srv/salt/salt-states

这是我的回购目录结构:

.
|-- README.md
|-- formulas
|   `-- test
|       |-- test.sls
`-- top.sls

这是我最基本的 top.sls:

base:
  '*':
    - test

如果我尝试在我的测试节点上 运行 highstate 我得到:

root@saltmaster:/etc/salt] salt -v '*' state.highstate
Executing job with jid 1234567890
-------------------------------------------

test-minion.domain:
----------
          ID: states
    Function: no.None
      Result: False
     Comment: No Top file or external nodes data matches found.
     Started:
    Duration:
     Changes:

Summary for test-minion.domain
------------
Succeeded: 0
Failed:    1
------------
Total states run:     1
Total run time:   0.000 ms

我不确定为什么这不起作用,如果有任何帮助,我将不胜感激。我试过只应用 test.sls 来查看问题是否出在顶级文件上,但我得到了这个:

root@saltmaster:/etc/salt] salt -v '*' state.sls test
Executing job with jid 1234567890
-------------------------------------------

test-minion.domain:
    Data failed to compile:
----------
    No matching sls found for 'test' in env 'base'

我在 saltstack IRC 上与人们交谈,有人帮助我解决了这个问题。似乎添加一个挂载点把一切都搞砸了。归功于:

12:20] ==  realname : Thomas Phipps
[12:20] ==  channels : #salt
[12:20] ==  server   : orwell.freenode.net [NL]
[12:20] ==           : is using a secure connection
[12:20] ==  account  : whytewolf
[12:20] == End of WHOIS

我遇到了类似的问题,是因为缓存不同步,没有更新。如果我尝试 运行:

salt-run fileserver.update

我得到了:

[警告] gitfs 远程 'git@github.com:mention-me/Salt.git' 存在更新锁定文件,跳过。如果此警告仍然存在,则可能是更新过程中断了,但锁定也可能是手动设置的。删除 /var/cache/salt/master/gitfs/7d8d9790a933949777fd5a58284b8850/.git/update.lk 或 运行ning 'salt-run cache.clear_git_lock gitfs type=update' 将允许继续更新此遥控器。

删除指定的缓存文件,运行使用上述命令解决了问题。