xcat-core/xCAT/postscripts/install_puppet_server
2013-03-29 19:03:18 +00:00

98 lines
3.1 KiB
Bash
Executable File

#!/bin/sh
# IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------------------------------
#=head1 install_puppet_server
#=head2 This command installs the puppet server on a xCAT server or node.
# It is used on Ubuntu only.
# Usage:
# set $PUPPETSERVER as the puppet server on site table. The default is
# site.master
# install_puppet_server
# or
# updatenode <node> install_puppet_server
#=cut
#-------------------------------------------------------------------------------
#Figure out what os this node has
if [ "$(uname -s)" = "Linux" ]; then
result=`cat /etc/*release* 2>&1`
echo $result|grep "Ubuntu" > /dev/null
if [ $? -eq 0 ]; then
os="Ubuntu"
else
echo $result | grep "Red Hat" > /dev/null
if [ $? -eq 0 ]; then
os="RedHat"
else
echo $result | grep "SUSE" > /dev/null
if [ $? -eq 0 ]; then
os="Sles"
fi
fi
fi
fi
if [ "$os" == "Ubuntu" ]; then
#cleanup the old installations
echo "Removing old puppet packages....."
apt-get -y autoremove puppetmaster puppet --purge
rm -Rf /etc/puppet/*
rm -Rf /var/lib/puppet/*
echo "Adding new repositories....."
#get os release name
urelease="precise" #default release name
urelease=`cat /etc/lsb-release |grep DISTRIB_CODENAME |cut -d= -f2`
#add ubuntu repositories from the net.
#We use us mirror, what about for the customers of other contires?
echo "deb http://us.archive.ubuntu.com/ubuntu/ $urelease main" > /etc/apt/sources.list.d/os_remote.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ ${urelease}-updates main" >> /etc/apt/sources.list.d/os_remote.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ $urelease universe" >> /etc/apt/sources.list.d/os_remote.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ ${urelease}-updates universe" >> /etc/apt/sources.list.d/os_remote.list
#add the puppet lab repositories
repname=puppetlabs-release-${urelease}.deb
wget -N --waitretry=10 --random-wait -T 60 http://apt.puppetlabs.com/$repname -P /tmp 2>> /tmp/wget.log
rc=$?
if [ $rc -eq 0 ] && [ -f /tmp/$repname ]; then
dpkg -i /tmp/$repname
apt-get update
else
echo "Cannot download http://apt.puppetlabs.com/$repname"
exit 1
fi
rm /tmp/$repname
#refresh the repository
apt-get -y update
echo "Installing puppet server....."
#install puppet server
apt-get -y install puppetmaster
#install rake and git
apt-get -y install rake git
#Now configure the pupper server
result=`dirname $0`
${result}/config_puppet_server "$@"
#restart puppet master
service puppetmaster stop
kill $(ps auxww | grep puppet | grep master | grep -v grep | awk '{print $2}')
service puppetmaster start
elif [ "$os" == "RedHat" ]; then
echo "Puppet server installation with xCAT on RedHat is through a kit. Please refer to ... for details.".
else
echo "Puppet server setup by xCAT is not supported yet on this plateform."
fi
exit 0