Gro*_*com 5 git configuration-management saltstack
我有一个连接到盐主的盐仆从。我最近将一个大的 .sls 从“webserver.sls”重命名为“jetty.sls”。我使用带有 pygit2 和 ssh 的 gitfs 后端。我只启用了 gitfs 后端。
/etc/salt/master
:
fileserver_backend:
# - roots
- git
gitfs_provider: pygit2
gitfs_remotes:
- git@bitbucket.org:Groomblecom/[repo].git:
- pubkey: /root/salt-credentials/id_rsa.pub
- privkey: /root/salt-credentials/id_rsa
Run Code Online (Sandbox Code Playgroud)
但是,每当我运行时,都会salt-run fileserver.update && salt '*' state.highstate
出现错误:
Data failed to compile:
----------
No matching sls found for 'webserver' in env 'base'
Run Code Online (Sandbox Code Playgroud)
运行salt '*' state.show_sls jetty
给出了预期的(长)输出,与我在 bitbucket 存储库中看到的一致。运行salt '*' state.show_top
给出以下内容:
----------
base:
- common
- ingress
- webserver
Run Code Online (Sandbox Code Playgroud)
这与 bitbucket repo 中的 top.sls 不一致:
base:
'*':
- common
'*ingress*':
- ingress
- jetty
- nginx
Run Code Online (Sandbox Code Playgroud)
运行salt-run fileserver.update
或rm -rf /var/cache/salt/* && service salt-master restart
对输出没有影响。
我想知道这种行为是否存在已知错误(和解决方法),是否有办法强制清除真正的缓存,或者我是否犯了配置错误。
错误的原因是salt考虑了所有分支,然后合并所有(!)分支来编译最终的top.sls。我有一个旧分支,它是 master 后面的几次提交,因此仍然引用了 webserver.sls。解决方案非常简单:只需将以下内容添加到/etc/salt/master
:
gitfs_env_whitelist:
- master
Run Code Online (Sandbox Code Playgroud)
或者,如果您的主分支不是 master,请将 master 替换为您的分支名称。
归档时间: |
|
查看次数: |
1676 次 |
最近记录: |