git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15733 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
# IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
 | 
						|
 | 
						|
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
#=head1  config_puppet_server
 | 
						|
#=head2  This command configures the puppet server on a xCAT server or node.
 | 
						|
#        It is used by install_puppet_server on Ubuntu and puppet kit on RH.
 | 
						|
#=cut
 | 
						|
#-------------------------------------------------------------------------------
 | 
						|
 | 
						|
 | 
						|
#Now configure the pupper server
 | 
						|
echo "Configuring pupper server....."
 | 
						|
#remove old certificate
 | 
						|
puppet cert clean --all
 | 
						|
 | 
						|
echo "XCATROOT=$XCATROOT, PUPPETSERVER=$PUPPETSERVER"
 | 
						|
if [ -n "$XCATROOT" ]; then
 | 
						|
    xcatroot=$XCATROOT
 | 
						|
else
 | 
						|
    xcatroot="/opt/xcat"
 | 
						|
fi
 | 
						|
 | 
						|
#use site.puppetserver or site.master as the puppet server certname 
 | 
						|
if [ -n "$PUPPETSERVER" ]; then 
 | 
						|
    node=$PUPPETSERVER
 | 
						|
else 
 | 
						|
    tmp=`XCATBYPASS=Y $xcatroot/bin/lsdef -t site clustersite  2>&1 |grep "puppetserver="` 
 | 
						|
    if [ $? -eq 0 ]; then
 | 
						|
	node=`echo $tmp|cut -d= -f2`
 | 
						|
    fi
 | 
						|
fi    
 | 
						|
if [ -z "$node" ]; then
 | 
						|
    if [ -n "$SITEMASTER" ]; then 
 | 
						|
	node=$SITEMASTER
 | 
						|
    else 
 | 
						|
	tmp=`XCATBYPASS=Y $xcatroot/bin/lsdef -t site clustersite  2>&1 |grep "master="`
 | 
						|
	if [ $? -eq 0 ]; then
 | 
						|
	    node=`echo $tmp|cut -d= -f2`
 | 
						|
	fi
 | 
						|
    fi
 | 
						|
fi
 | 
						|
if [ -z "$node" ]; then    
 | 
						|
    if [ -n "$NODE" ]; then
 | 
						|
	node=$NODE
 | 
						|
    else
 | 
						|
	node=`hostname -s`
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
echo "node=$node"
 | 
						|
 | 
						|
#configure: we take default for most
 | 
						|
confname="/etc/puppet/puppet.conf"
 | 
						|
if [ ! -f "$confname" ]; then
 | 
						|
    cat > $confname  << EOT
 | 
						|
[main]
 | 
						|
logdir=/var/log/puppet
 | 
						|
vardir=/var/lib/puppet
 | 
						|
ssldir=/var/lib/puppet/ssl
 | 
						|
rundir=/var/run/puppet
 | 
						|
factpath=$vardir/lib/facter
 | 
						|
templatedir=$confdir/templates
 | 
						|
 | 
						|
[master]
 | 
						|
# These are needed when the puppetmaster is run by passenger
 | 
						|
# and can safely be removed if webrick is used.
 | 
						|
ssl_client_header = SSL_CLIENT_S_DN
 | 
						|
ssl_client_verify_header = SSL_CLIENT_VERIFY
 | 
						|
EOT
 | 
						|
else
 | 
						|
    cp -f $confname ${confname}.save
 | 
						|
fi
 | 
						|
 | 
						|
sed -i "/\[main\]/ a\
 | 
						|
    certname = $node" $confname
 | 
						|
sed -i "/\[main\]/ a\
 | 
						|
    server = $node" $confname    
 | 
						|
 | 
						|
#create a site manifest site.pp on the master:
 | 
						|
cat > /etc/puppet/manifests/site.pp << EOT
 | 
						|
node default {
 | 
						|
  notify { 'I can connect!': }
 | 
						|
}
 | 
						|
EOT
 | 
						|
 | 
						|
#automacally sign the nodes, TODO: add nodes one by one
 | 
						|
if [ -n "$DOMAIN" ]; then
 | 
						|
    domainnames=$DOMAIN
 | 
						|
else
 | 
						|
    tmp=`XCATBYPASS=Y $xcatroot/bin/lsdef -t site clustersite  2>&1 |grep "domain="`
 | 
						|
    if [ $? -ne 0 ]; then
 | 
						|
	domainnames="cluster.com" #default
 | 
						|
    else
 | 
						|
	domainnames=`echo $tmp| cut -d= -f2`
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
confname2="/etc/puppet/autosign.conf"
 | 
						|
if [ -f "$confname2" ]; then
 | 
						|
    cp -f $confname2 ${confname2}.save
 | 
						|
fi
 | 
						|
echo "*.$domainnames" > $confname2
 | 
						|
echo "*" >> $confname2  #now we have to use this because we use short node name instead of FQDN
 | 
						|
 | 
						|
exit 0
 | 
						|
 |