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' 将允许继续更新此遥控器。
删除指定的缓存文件,运行使用上述命令解决了问题。
这是我的 /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' 将允许继续更新此遥控器。
删除指定的缓存文件,运行使用上述命令解决了问题。