新版本的SaltStack有一个非常好的特性,可以使用git作为文件服务的源,这样一来,在开发环境中可以很方便的把修改同步到测试环境,同时在生产环境中也可以对sls这些比较重要的配置文件进行方便天然的版本管理
参照官方教程,在master配置文件中配置了
fileserver_backend:
- git
还有
gitfs_remotes:
- https://github.com/saltstack-formulas/salt-formula.git
如果想使用git源中的某个子目录作为file_backend目录的话还需要配置这个:
gitfs_root: backend_subdir
当然,git仓库的地址改成了公司内部搭的内部gitlab
重启salt-masster后发现没生效
检查/var/log/salt/master日志提示如下:
[salt.loaded.int.fileserver.gitfs ][ERROR ] Git fileserver backend is enabled in configuration but could not be loaded, is GitPython installed?
既然找不到GitPython,因为服务器能连公网所以果断用yum安装
yum install GitPython
我这会儿用的是 2014.1.4 版本的 salt-stack, 官方文档中提到最好用 0.3.2.RC1,我用yum安装提示的版本是 GitPython-0.3.2-0.6.RC1.el6.noarch.rpm 嗯...EPEL万岁..
高兴的重启salt-master....还是不行.....
再看日志,提示信息变了
[salt.loaded.int.fileserver.gitfs ][WARNING ] GitPython exception caught while fetching: len([]) != len(['Host key verification failed.', ''])
突然想起之前刚用git的时候,貌似有过类似的问题.因为ssh要先建立信任关系,于是尝试下面的命令
ssh -T git@githost.com
这里的git仓库地址当然也要用你自己的仓库地址
然后根据提示输入个yes
再重启salt-master
问题解决!
可以在 /var/cache/salt/master 下面看到名为 gitfs 的目录啦
来源:oschina
链接:https://my.oschina.net/u/1271115/blog/273046