bash-3.2# cat /usr/bin/puppet_external_nodes.sh #!/bin/bash## Script that checks out the passed hostname and determines the correct classes# # Hostnames are parsed: machinename-machinetype-building with either .local or .huronhs.com ending## If a hostname does not conform to the hyphenated standard, it receives a non-zero error type# and is passed back to the nodes.pp file in Puppet.#
hostname=$1# Extract machinename, machinetype, and building codes
one=`echo $hostname | awk -F'-' '{print $1}'`
two=`echo $hostname | awk -F'-' '{print $2}'`
three=`echo $hostname | awk -F'-' '{print $3}' | sed 's/\..*//'`# If the machine does not conform to the hyphenated standard, pass a non-zero error# and return us to the main nodes.pp file.if [ -z "$two" ] && [ "${two+xxx}" = "xxx" ];then
exit 1
fi# If the machine DOES conform to the hyphenated standard, pass the machinetype and# building variables as classtypes in Puppet. Exit 0 to appease Puppet
cat << END
---
classes:
- general_image
- $two
- $three
parameters:
puppet_server: testing.huronhs.com
END
exit 0