36 lines
1 KiB
Bash
Executable file
36 lines
1 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Re-used example from SJD
|
|
#
|
|
|
|
set -e
|
|
|
|
stamp="$COSMOS_BASE/stamps/puppet-tools-v01.stamp"
|
|
|
|
if ! test -f $stamp -a -f /usr/bin/puppet; then
|
|
codename=`lsb_release -c| awk '{print $2}'`
|
|
wget -c http://apt.puppetlabs.com/puppetlabs-release-${codename}.deb
|
|
dpkg -i puppetlabs-release-${codename}.deb
|
|
rm -f puppetlabs-release-${codename}.deb*
|
|
apt-get update
|
|
apt-get -y install puppet-common
|
|
|
|
mkdir -p `dirname $stamp`
|
|
touch $stamp
|
|
fi
|
|
|
|
python -c "import yaml" 2>/dev/null || apt-get -y install python-yaml
|
|
|
|
if [ -f /etc/puppet/cosmos-modules.conf ]; then
|
|
grep -E -v "^#" /etc/puppet/cosmos-modules.conf | (
|
|
cd /etc/puppet/modules && while read module src update; do
|
|
if [ ! -d /etc/puppet/modules/$module ]; then
|
|
echo $src | grep -q "://" && git clone $src $module || puppet module install $src
|
|
else
|
|
if [ "x$update" = "xyes" ]; then
|
|
echo $src | grep -q "://" && (cd /etc/puppet/modules/$module && git pull -q) || puppet module upgrade $src
|
|
fi
|
|
fi
|
|
done)
|
|
fi
|