@@ -0,0 +1,26 @@ | |||
DESTDIR=/ | |||
SALTENVDIR=/usr/share/salt-formulas/env | |||
RECLASSDIR=/usr/share/salt-formulas/reclass | |||
FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-]*') | |||
all: | |||
@echo "make install - Install into DESTDIR" | |||
@echo "make test - Run tests" | |||
@echo "make clean - Cleanup after tests run" | |||
install: | |||
# Formula | |||
[ -d $(DESTDIR)/$(SALTENVDIR) ] || mkdir -p $(DESTDIR)/$(SALTENVDIR) | |||
cp -a $(FORMULANAME) $(DESTDIR)/$(SALTENVDIR)/ | |||
[ ! -d _modules ] || cp -a _modules $(DESTDIR)/$(SALTENVDIR)/ | |||
[ ! -d _states ] || cp -a _states $(DESTDIR)/$(SALTENVDIR)/ || true | |||
# Metadata | |||
[ -d $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) ] || mkdir -p $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) | |||
cp -a metadata/service/* $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) | |||
test: | |||
[ ! -d tests ] || (cd tests; ./run_tests.sh) | |||
clean: | |||
[ ! -d tests/build ] || rm -rf tests/build | |||
[ ! -d build ] || rm -rf build |
@@ -2,7 +2,8 @@ Source: salt-formula-salt | |||
Maintainer: Ales Komarek <ales.komarek@tcpcloud.eu> | |||
Section: admin | |||
Priority: optional | |||
Build-Depends: debhelper (>= 9) | |||
Build-Depends: salt-master, python, python-yaml, debhelper (>= 9), | |||
salt-formula-git, salt-formula-reclass | |||
Standards-Version: 3.9.6 | |||
Homepage: http://www.tcpcloud.eu | |||
Vcs-Browser: https://github.com/tcpcloud/salt-formula-salt | |||
@@ -10,6 +11,7 @@ Vcs-Git: https://github.com/tcpcloud/salt-formula-salt.git | |||
Package: salt-formula-salt | |||
Architecture: all | |||
Depends: ${misc:Depends}, salt-master, reclass | |||
Depends: ${misc:Depends}, salt-master, reclass, | |||
salt-formula-git, salt-formula-reclass | |||
Description: Salt salt formula | |||
Install and configure Salt masters and minions. |
@@ -1,3 +0,0 @@ | |||
salt/* /usr/share/salt-formulas/env/salt/ | |||
metadata/service/* /usr/share/salt-formulas/reclass/service/salt/ | |||
_modules/* /usr/share/salt-formulas/env/_modules/ |
@@ -69,6 +69,7 @@ file_roots: | |||
base: | |||
- ${SALT_FILE_DIR} | |||
- ${CURDIR}/.. | |||
- /usr/share/salt-formulas/env | |||
pillar_roots: | |||
base: | |||
@@ -78,16 +79,17 @@ EOF | |||
} | |||
fetch_dependency() { | |||
dep_root="${DEPSDIR}/$(basename $1 .git)" | |||
dep_name="$(echo $1|cut -d : -f 1)" | |||
dep_source="$(echo $1|cut -d : -f 2)" | |||
dep_root="${DEPSDIR}/$(basename $dep_source .git)" | |||
dep_metadata="${dep_root}/metadata.yml" | |||
[ -d $dep_root ] && log_info "Dependency $1 already fetched" && return 0 | |||
[ -d /usr/share/salt-formulas/env/${dep_name} ] && log_info "Dependency $dep_name already present in system-wide salt env" && return 0 | |||
[ -d $dep_root ] && log_info "Dependency $dep_name already fetched" && return 0 | |||
log_info "Fetching dependency $1" | |||
log_info "Fetching dependency $dep_name" | |||
[ ! -d ${DEPSDIR} ] && mkdir -p ${DEPSDIR} | |||
git clone $1 ${DEPSDIR}/$(basename $1 .git) | |||
dep_name=$(cat $dep_metadata | python -c "import sys,yaml; print yaml.load(sys.stdin)['name']") | |||
git clone $dep_source ${DEPSDIR}/$(basename $dep_source .git) | |||
ln -s ${dep_root}/${dep_name} ${SALT_FILE_DIR}/${dep_name} | |||
METADATA="${dep_metadata}" install_dependencies | |||
@@ -98,7 +100,7 @@ install_dependencies() { | |||
(python - | while read dep; do fetch_dependency "$dep"; done) << EOF | |||
import sys,yaml | |||
for dep in yaml.load(open('${METADATA}', 'ro'))['dependencies']: | |||
print dep["source"] | |||
print '%s:%s' % (dep["name"], dep["source"]) | |||
EOF | |||
} | |||
@@ -108,14 +110,14 @@ clean() { | |||
} | |||
salt_run() { | |||
source ${VENV_DIR}/bin/activate | |||
[ -e ${VEN_DIR}/bin/activate ] && source ${VENV_DIR}/bin/activate | |||
salt-call ${SALT_OPTS} $* | |||
} | |||
prepare() { | |||
[ -d ${BUILDDIR} ] && mkdir -p ${BUILDDIR} | |||
setup_virtualenv | |||
which salt-call || setup_virtualenv | |||
setup_pillar | |||
setup_salt | |||
install_dependencies |