echo "======================================================================================"
echo ""
echo "Puppet Agent Installation"
echo ""
echo "This script will install a Puppet Agent on a RHEL / CentOS server."
echo ""
echo "======================================================================================"
echo ""
EXPECTED_ARGS=1
E_BADARGS=65
echo "=> Getting OS version ..."
OS_MAJ_VERSION=$(rpm -qa \*-release | grep -Ei "oracle|redhat|centos" | cut -d"-" -f3)
echo "=> Done!"
echo "=> Getting hostname ..."
if [ $# -ne $EXPECTED_ARGS ]
then
  echo "Usage: $0 master_hostname"
  exit $E_BADARGS
fi
MASTER_HOSTNAME=$1
MY_HOSTNAME=$HOSTNAME
echo "=> Found $MASTER_HOSTNAME"
echo "=> Done!"
echo "=> Adding Puppetlabs Yum repo ..."
yum install -y http://yum.puppetlabs.com/puppetlabs-release-el-"$OS_MAJ_VERSION".noarch.rpm > /dev/null 2>&1
echo "=> Done!"
echo "=> Installing Puppet Agent ..."
yum -y install puppet > /dev/null 2>&1
echo "=> Done!"
echo "=> Configuring Puppet Agent ..."
echo '[main]
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    ssldir = $vardir/ssl
    server = MASTER_HOSTNAME

[agent]
    classfile = $vardir/classes.txt
    localconfig = $vardir/localconfig' > /etc/puppet/puppet.conf
sed -i "s/MASTER_HOSTNAME/$MASTER_HOSTNAME/g" /etc/puppet/puppet.conf
echo "=> Done!"
echo "=> Ensuring Puppet Agent is running ..."
puppet resource service puppet ensure=running enable=true > /dev/null 2>&1
echo "=> Done!"
echo ""
echo "======================================================================================"
echo ""
echo "Puppet Agent installed, you should run;"
echo ""
echo "puppet cert sign $MY_HOSTNAME"
echo ""
echo "on your Puppet Master ($MASTER_HOSTNAME) as soon as possible."
echo ""
echo "======================================================================================"