390a5aac46
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.7@12594 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
118 lines
3.7 KiB
Bash
Executable File
118 lines
3.7 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
|
|
sed -i "s/^KDUMP_COPY_KERNEL=.*$/KDUMP_COPY_KERNEL=no/" /etc/sysconfig/kdump
|
|
#change the mount and remount shell scripts' name, workaround for kdump on stateless node
|
|
oldmount=`ls /lib/mkinitrd/boot/*-mount.sh`
|
|
oldremount=`ls /lib/mkinitrd/boot/*-remount.sh`
|
|
mv $oldmount ${oldmount}.bak
|
|
mv $oldremount ${oldremount}.bak
|
|
/etc/init.d/boot.kdump restart
|
|
mv ${oldmount}.bak $oldmount
|
|
mv ${oldremount}.bak $oldremount
|
|
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
|