saltstack中使用gitfs

 

参考文档:http://docs.saltstack.com/topics/tutorials/gitfs.html

 

Git服务器简单搭建

安装git

yum install -y git python-setuptools
安装gitosis
git clone git://github.com/res0nat0r/gitosis.git

cd gitosis

python setup.py install
添加git用户
useradd -m git
生成ssh密钥(git client)
ssh-keygen -t rsa

scp ~/.ssh/id_rsa.pub root@$GitServer:/tmp/
初始化gitosis
su - git

gitosis-init < /tmp/id_rsa.pub
配置gitosis-admin (git client)
yum install -y git

git 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':

  - test

vi test.sls

/tmp/test.txt:

  file.managed:

  - source: salt://test.txt

vi test.txt:

Gitfs test.

git add *

git commit -am ‘test’

git push git@$GitServer:saltstack master

salt ‘web-91’ state.highstate