diff --git a/host-puppet-conf-test b/host-puppet-conf-test new file mode 100755 index 0000000..e72008c --- /dev/null +++ b/host-puppet-conf-test @@ -0,0 +1,44 @@ +#!/bin/bash +set +x +HOSTNAME=$1 +PUPPET_ARGS=$2 + +if [ -z "$HOSTNAME" ]; then + echo "Usage: $0 fqdn" + exit 1 +fi + +if [ ! -d "$HOSTNAME" ]; then + echo "$0: No host-directory for '$HOSTNAME' found - execute in top-level cosmos dir" + exit 1 +fi + +PUPPET_ARGS=${PUPPET_ARGS-"--verbose"} + +# Check if cosmos or puppet is already running on host +echo "Checking if puppet or cosmos is already running..." +ssh root@$HOSTNAME ps aux | egrep -v "grep|edit-secrets|gpg-agent" | egrep -q "cosmos|puppet" + +if [ $? -eq 1 ] +then + echo "Copying files to host..." + rsync -av --exclude '*~' global/overlay/etc/puppet/cosmos-rules.yaml root@$HOSTNAME:/etc/puppet/cosmos-rules.yaml + rsync -av --exclude '*~' global/overlay/etc/puppet/manifests/cosmos-site.pp root@$HOSTNAME:/etc/puppet/manifests/cosmos-site.pp + rsync -av --exclude '*~' global/overlay/etc/puppet/cosmos-db.yaml root@$HOSTNAME:/etc/puppet/cosmos-db.yaml + rsync -av --exclude '*~' global/overlay/etc/hiera/data/common.yaml root@$HOSTNAME:/etc/hiera/data/common.yaml + + # Test if the user has symlinked puppet-sunet correctly + # by first checking if the link exits and then whether + # or not the directory contains any files. + if [ -L global/overlay/etc/puppet/cosmos-modules/sunet ] && \ + [ -n "$(ls -A global/overlay/etc/puppet/cosmos-modules/sunet/*)" ] + then + rsync -av --delete --exclude '*~' global/overlay/etc/puppet/cosmos-modules/sunet/* root@$HOSTNAME:/etc/puppet/cosmos-modules/sunet/. + fi + + echo "Running puppet apply..." + ssh root@$HOSTNAME /usr/bin/puppet apply $PUPPET_ARGS /etc/puppet/manifests/cosmos-site.pp +else + echo "Cosmos or puppet already running. Exiting." + exit 1 +fi