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
 | |
| 
 |