git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12299 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			110 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
 | 
						|
#(C)IBM Corp
 | 
						|
# 
 | 
						|
 | 
						|
# create /etc/sysconfig/network-scripts/
 | 
						|
pmatch ()
 | 
						|
{
 | 
						|
  case $1 in
 | 
						|
    $2) return 0;;  # zero return code means string matched by pattern
 | 
						|
  esac
 | 
						|
 | 
						|
  return 1          # non-zero return code means string not matched by pattern
 | 
						|
}
 | 
						|
 | 
						|
for i in `/bin/cat /proc/cmdline`; do
 | 
						|
    KEY=`/bin/echo $i  | /bin/awk -F= '{print $1}'`
 | 
						|
    if [ "$KEY" = "ifname" ]; then
 | 
						|
        ifname=`/bin/echo $i | /bin/awk -F= '{print $2}'`
 | 
						|
        MACX=${ifname#*:}
 | 
						|
        ETHX=${ifname%:$MACX*}
 | 
						|
        break
 | 
						|
    elif [ "$KEY" = "netdev" ]; then
 | 
						|
        ETHX=`/bin/echo $i | /bin/awk -F= '{print $2}'`
 | 
						|
        MACX=`/sbin/ip link show $ETHX | /bin/grep ether | /bin/awk '{print $2}'`
 | 
						|
        break
 | 
						|
    elif [ "$KEY" = "BOOTIF" ]; then
 | 
						|
        MACX=`/bin/echo $i | /bin/awk -F= '{print $2}'`
 | 
						|
        ETHX=`/sbin/ifconfig | /bin/grep -i $MACX | /bin/awk '{print $1}'`
 | 
						|
        break
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
if [ ! -z "$MACX" ] && [ ! -z "$ETHX" ]; then
 | 
						|
	if (pmatch $OSVER "sles*") || (pmatch $OSVER "suse*") || [ -f /etc/SuSE-release ]; then
 | 
						|
		CONFFILE=$MNTDIR/etc/sysconfig/network/ifcfg-$ETHX
 | 
						|
	fi
 | 
						|
	if (pmatch $OSVER "fedora*") || (pmatch $OSVER "rhel6*") || (pmatch $OSVER "rhels6*") || [ -f /etc/fedora-release ] || [ -f /etc/redhat-release ];then
 | 
						|
		CONFFILE=$MNTDIR/etc/sysconfig/network-scripts/ifcfg-$ETHX
 | 
						|
	fi
 | 
						|
    if [ ! -e $CONFFILE ]; then
 | 
						|
        /bin/touch $CONFFILE
 | 
						|
    fi
 | 
						|
    echo "DEVICE=$ETHX" > $CONFFILE
 | 
						|
    echo "BOOTPROTO=dhcp" >> $CONFFILE
 | 
						|
    echo "HWADDR=$MACX" >> $CONFFILE
 | 
						|
    echo "ONBOOT=yes" >> $CONFFILE
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
for i in `cat /proc/cmdline`; do
 | 
						|
    KEY=`echo $i | awk -F= '{print $1}'`
 | 
						|
    if [ "$KEY" = "dump" ]; then
 | 
						|
        DUMP=`echo $i |awk -F= '{print $2}'`
 | 
						|
        if [ ! -z "$XCAT" ]; then
 | 
						|
            break
 | 
						|
        fi
 | 
						|
    elif [ "$KEY" = "XCAT" ]; then
 | 
						|
        XCAT=`echo $i |awk -F= '{print $2}'`
 | 
						|
        if [ ! -z "$DUMP" ]; then
 | 
						|
            break
 | 
						|
        fi
 | 
						|
    fi
 | 
						|
done
 | 
						|
 | 
						|
if [ ! -z "$DUMP" ]; then
 | 
						|
    # parse "dump=<proto>://<nfsserver_IP>/<directory>"
 | 
						|
    KDPATH=${DUMP#*:}
 | 
						|
    KDPROTO=${DUMP%:$KDPATH*}
 | 
						|
    
 | 
						|
    KDPATH=${KDPATH/\/\//}
 | 
						|
    KDIP=`echo $KDPATH | cut -d'/' -f1`
 | 
						|
    KDPATH=${KDPATH/$KDIP/}
 | 
						|
 | 
						|
    # if "dump=<proto>:///<directory>", use $xcatmaster as the default NFS server
 | 
						|
    if [ -z $KDIP ]; then
 | 
						|
        KDIP=${XCAT%:*}
 | 
						|
    fi
 | 
						|
 | 
						|
    # workaround for RHEL6
 | 
						|
    # the $KDIP:$KDPATH directory will be used to generate the initrd for kdump service
 | 
						|
    MOUNTPATH=""
 | 
						|
    if (pmatch $OSVER "*6\.*" ); then
 | 
						|
	MOUNTPATH="/tmp"
 | 
						|
    else
 | 
						|
	MOUNTPATH="/var/tmp"
 | 
						|
    fi 
 | 
						|
    /bin/mount $KDIP:$KDPATH $MOUNTPATH
 | 
						|
 | 
						|
    if [ "$KDPROTO" = "nfs" ]; then
 | 
						|
	if (pmatch $OSVER "sles*") || (pmatch $OSVER "suse*") || [ -f /etc/SuSE-release ]; then
 | 
						|
	    KDPATH=${KDPATH//\//\\\/}
 | 
						|
	    KDPATH="nfs:\/\/${KDIP}${KDPATH}"
 | 
						|
	    sed -i "s/^KDUMP_SAVEDIR=.*$/KDUMP_SAVEDIR=\"${KDPATH}\"/" /etc/sysconfig/kdump
 | 
						|
	    /etc/init.d/boot.kdump restart
 | 
						|
	else
 | 
						|
	    if (pmatch $OSVER "fedora*") || (pmatch $OSVER "rhel6*") || (pmatch $OSVER "rhels6*") || [ -f /etc/fedora-release ] || [ -f /etc/redhat-release ];then
 | 
						|
		echo "net $KDIP:$KDPATH" > /etc/kdump.conf
 | 
						|
		/etc/init.d/kdump restart
 | 
						|
	    fi
 | 
						|
	fi
 | 
						|
    fi
 | 
						|
 | 
						|
    /bin/umount $MOUNTPATH
 | 
						|
else
 | 
						|
    /bin/echo "The kdump server is not configured"
 | 
						|
fi
 | 
						|
 | 
						|
exit 0
 |