92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| # IBM(c) 2012 EPL license http://www.eclipse.org/legal/epl-v10.html
 | |
| 
 | |
| #-------------------------------------------------------------------------------
 | |
| #=head1  setuppostbootscripts 
 | |
| #=head2  This command setup the node so that when the node reboots,
 | |
| #        the postbootscripts will be run or not depending on the   
 | |
| #        site.runbootscripts setting. 
 | |
| #        If site.runbootscripts is 'yes', then the scripts defined by
 | |
| #        postscripts.postbootscripts will be run when the node reboots. 
 | |
| #=cut
 | |
| #-------------------------------------------------------------------------------
 | |
| 
 | |
| #only works for diskful nodes
 | |
| if [ "$NODESETSTATE" = "netboot" -o \
 | |
|      "$NODESETSTATE" = "statelite" -o \
 | |
|      "$NODESETSTATE" = "diskless" -o \
 | |
|      "$NODESETSTATE" = "dataless" ]; then
 | |
|     logger -t xCAT -p local4.info "setuppostbootscripts: Nothing to do for stateless and statelite nodes."
 | |
|     exit 0
 | |
| fi
 | |
| 
 | |
| #create /opt/xcat directory if not exist
 | |
| if [ ! -d "/opt/xcat" ]; then
 | |
|     mkdir -p /opt/xcat
 | |
| fi
 | |
| infofile="/opt/xcat/xcatinfo"
 | |
| if [ "$RUNBOOTSCRIPTS" = "yes" ] || [ "$RUNBOOTSCRIPTS" = "YES" ]; then
 | |
|        RUNBOOTSCRIPTS=YES
 | |
| else
 | |
|        RUNBOOTSCRIPTS=NO
 | |
| fi 
 | |
| #  check to see if current setting is already in the file, if so nothing to do
 | |
| if [ -f $infofile ]; then
 | |
|     value=`grep "RUNBOOTSCRIPTS=$RUNBOOTSCRIPTS" $infofile`
 | |
|     if [[ -n $value ]]; then  # match
 | |
|       logger -t xCAT -p local4.info "setuppostbootscripts: xcatinfo uptodate, nothing to do."
 | |
|       exit 0
 | |
|     fi
 | |
| fi
 | |
| #copy the necessary files
 | |
| rsync /xcatpost/xcatdsklspost /opt/xcat/xcatdsklspost
 | |
| rsync /xcatpost/xcatinstallpost /opt/xcat/xcatinstallpost
 | |
| rsync /xcatpost/xcatpostinit1 /etc/init.d/xcatpostinit1
 | |
| chmod 755 /etc/init.d/xcatpostinit1
 | |
| 
 | |
| if [ ! -f "/etc/rc.d/rc3.d/S84xcatpostinit1" ]; then 
 | |
|     ln -s /etc/init.d/xcatpostinit1 /etc/rc.d/rc3.d/S84xcatpostinit1
 | |
| fi
 | |
| if [ ! -f "/etc/rc.d/rc4.d/S84xcatpostinit1" ]; then
 | |
|     ln -s /etc/init.d/xcatpostinit1 /etc/rc.d/rc4.d/S84xcatpostinit1
 | |
| fi
 | |
| if [ ! -f "/etc/rc.d/rc5.d/S84xcatpostinit1" ]; then
 | |
|     ln -s /etc/init.d/xcatpostinit1 /etc/rc.d/rc5.d/S84xcatpostinit1
 | |
| fi
 | |
| 
 | |
| #put correct info in /opt/xcat/xcatinfo
 | |
| 
 | |
| if [ ! -f $infofile ]; then
 | |
|     echo "XCATSERVER=$MASTER" > $infofile
 | |
|     echo "REBOOT=TRUE" >> $infofile
 | |
|     echo "RUNBOOTSCRIPTS=$RUNBOOTSCRIPTS" >> $infofile
 | |
| else
 | |
|     value=`grep XCATSERVER $infofile`
 | |
|     if [[ -n $value ]]; then
 | |
|         sed -i "s/^XCATSERVER=.*$/XCATSERVER=$MASTER/" $infofile
 | |
|     else 
 | |
|         echo "XCATSERVER=$MASTER" >> $infofile
 | |
|     fi
 | |
|     value=`grep REBOOT $infofile`
 | |
|     if [[ -n $value ]]; then
 | |
|         sed -i "s/^REBOOT=.*$/REBOOT=TRUE/" $infofile
 | |
|     else 
 | |
|         echo REBOOT=TRUE >> $infofile
 | |
|     fi
 | |
|     value=`grep RUNBOOTSCRIPTS $infofile`
 | |
|     if [[ -n $value ]]; then
 | |
|         sed -i "s/^RUNBOOTSCRIPTS=.*$/RUNBOOTSCRIPTS=$RUNBOOTSCRIPTS/" $infofile
 | |
|     else 
 | |
|         echo "RUNBOOTSCRIPTS=$RUNBOOTSCRIPTS" >> $infofile
 | |
|     fi
 | |
| fi
 | |
| #enable/disable the running of postscripts according to site.runbootscripts
 | |
| if [[ "$RUNBOOTSCRIPTS" = "yes" ]]; then
 | |
|     output=`chkconfig xcatpostinit1 on 2>&1  > /dev/null`
 | |
| else
 | |
|     output=`chkconfig xcatpostinit1 off 2>&1  > /dev/null`
 | |
| fi
 | |
| 
 | |
| exit 0
 | |
| 
 |