Add modules to install gitfs backend dependencies

Add modules for gitfs dependencies and documentation for how to use them.
This commit is contained in:
Brian Jackson 2015-03-25 21:52:29 -05:00
parent 924c04c0d8
commit 4533cc7d0e
5 changed files with 120 additions and 0 deletions

View File

@ -53,6 +53,21 @@ Requisite: Configure salt-master with rest_cherrypy or rest_tornado.
Install a minion and configure it in `standalone mode
<http://docs.saltstack.com/en/latest/topics/tutorials/standalone_minion.html>`_.
``salt.gitfs.dulwich``
----------------------
Install gitfs backend dulwich dependencies. Set ``salt:master:gitfs_provider: dulwich`` in your pillar.
``salt.gitfs.gitpython``
----------------------
Install gitfs backend GitPython dependenciess. Set ``salt:master:gitfs_provider: gitpython`` in your pillar.
``salt.gitfs.pygit2``
----------------------
Install gitfs backend libgit2/pygit2 dependenciess. Set ``salt:master:gitfs_provider: pygit2`` in your pillar.
``salt.pkgrepo``
----------------

View File

@ -12,3 +12,14 @@ salt:
salt_api: salt-api
salt_ssh: salt-ssh
clean_config_d_dir: False
master:
gitfs_provider: gitpython
gitfs:
dulwich:
install_from_source: True
pygit2:
install_from_source: True
gitpython:
install_from_source: False

21
salt/gitfs/dulwich.sls Normal file
View File

@ -0,0 +1,21 @@
{% from "salt/map.jinja" import salt_settings with context %}
# issue 34
{% if salt_settings.gitfs.dulwich.install_from_source %}
# we probably don't have a package or it's not a high enough version
# install latest from source/pip
dulwich-deps:
pkg.installed:
- pkgs:
- build-essential
- python-dev
install-dulwich:
pip.installed:
- name: dulwich
{% else %}
# install from package
# TODO haven't actually found a distro that has a good version to test
{% endif %}

13
salt/gitfs/gitpython.sls Normal file
View File

@ -0,0 +1,13 @@
{% from "salt/map.jinja" import salt_settings with context %}
{% if salt_settings.gitfs.gitpython.install_from_source %}
GitPython:
pip.installed
{% else %}
python-git:
pkg.installed
{% endif %}

60
salt/gitfs/pygit2.sls Normal file
View File

@ -0,0 +1,60 @@
{% from "salt/map.jinja" import salt_settings with context %}
{% if salt_settings.gitfs.pygit2.install_from_source %}
# we probably don't have a package or it's not a high enough version
# install latest from source/pip
pygit-deps:
pkg.installed:
- pkgs:
- build-essential
- python-dev
- libssh-dev
- libffi-dev
- cmake
dl-libgit2-src:
archive.extracted:
- name: /usr/src
- source: https://github.com/libgit2/libgit2/archive/v0.22.1.tar.gz
- source_hash: md5=dbf516d18e176bbb131de3efccfee533
- archive_format: tar
- keep: True
- if_missing: /usr/src/libgit2-0.22.1
/usr/src/libgit2-0.22.1/_build:
file.directory
configure-libgit2:
cmd.run:
- name: cmake ..
- cwd: /usr/src/libgit2-0.22.1/_build
- creates: /usr/src/libgit2-0.22.1/_build/Makefile
build-libgit2:
cmd.run:
- name: make -j4
- cwd: /usr/src/libgit2-0.22.1/_build
- creates: /usr/src/libgit2-0.22.1/_build/libgit2.so
install-libgit2:
cmd.run:
- name: make install
- cwd: /usr/src/libgit2-0.22.1/_build
- creates: /usr/local/lib/libgit2.so
run-ldconfig-after-lib-install:
cmd.run:
- name: ldconfig
- onchanges:
- cmd: install-libgit2
install-pygit2:
pip.installed:
- name: pygit2
{% else %}
# install from package
# TODO haven't actually found a distro that has a good version to test
# debian jessie will have libgit2-21
{% endif %}