summaryrefslogtreecommitdiff
path: root/global/pre-tasks.d/030puppet
blob: 2dc0b8064c632aacf55d803e3390e039660596cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/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