参考文档:http://docs.saltstack.com/topics/tutorials/gitfs.html
Git服务器简单搭建
安装git
yum install -y git python-setuptools
安装gitosis
git clone git://github.com/res0nat0r/gitosis.gitcd gitosis
python setup.py install
添加git用户
useradd -m git
生成ssh密钥(git client)
ssh-keygen -t rsascp ~/.ssh/id_rsa.pub root@$GitServer:/tmp/
初始化gitosis
su - gitgitosis-init < /tmp/id_rsa.pub
配置gitosis-admin (git client)
yum install -y gitgit clone git+ssh://git@$GitServer/gitosis-admin.git
vi gitosis-admin/gitosis.conf
[group gitosis-admin]
writable = gitosis-admin
members = root@localhost
在这个文件后面加入:
[group saltstack]
writable = saltstack
members = root@localhost ##注意和keydir目录下的文件名保存一致(去掉.pub)
保存退出
git add *
git commit -am ‘add saltstack repo’
git push git@$GitServer:saltstack master
配置gitfs
编辑/etc/salt/master:
fileserver_backend:
- git
gitfs_remotes:
- git+ssh://git@$GitServer/saltstack.git
service salt-master restart
重启后发现master没有起来,日志报错信息如下:
2014-01-02 16:50:08,365 [salt.loaded.int.fileserver.gitfs ][ERROR ] Git fileserver backend is enabled in configuration but could not be loaded, is GitPython installed?2014-01-02 16:50:08,365 [salt.master ][ERROR ] Failed to load fileserver backends, the configured backends are:
git
2014-01-02 16:50:08,365 [salt.master ][ERROR ] Master failed pre flight checks, exiting
查看官方文档,发现文档中已经有提到:
Note
GitFS requires the Python module GitPython, version 0.3.0 or newer. If your Master runs Ubuntu 12.04 LTS, you will likely need to install GitPython using pip.
wget https://pypi.python.org/packages/source/G/GitPython/GitPython-0.3.1-beta2.tar.gz –no-check-certificate
tar zxf GitPython-0.3.1-beta2.tar.gz
cd GitPython-0.3.1
python setup.py install
service salt-master restart
###
简单测试
mkdir saltstack
cd saltstack
git init
vi top.sls
base: 'web-91': - testvi test.sls
/tmp/test.txt: file.managed: - source: salt://test.txtvi test.txt:
Gitfs test.git add *
git commit -am ‘test’
git push git@$GitServer:saltstack master
salt ‘web-91’ state.highstate