xcat-core/xCAT/postscripts/confighfi
2012-02-08 02:47:11 +00:00

107 lines
2.3 KiB
Bash

#!/bin/sh
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
#-------------------------------------------------------------------------------
# Sample xCAT post script for configuring hfi settings and some conventions.
# This scripts works for both diskfull installs, diskless boots on AIX or Linux.
#-------------------------------------------------------------------------------
PLTFRM=`uname`
name=`echo $NODE | awk -F-hf '{print $1}'`
if [ -z $name ]
then
name=$NODE
fi
if [[ $PLTFRM != AIX ]] && [[ $PLTFRM != aix ]]
then
# A difference between service node and compute node is that service node is booted from
# ethernet, all the HFI interfaces should be configured. Compute node is booted from hf0
# so hf0 on compute node should not be re-configured on compute node.
if [[ $NTYPE = service ]]
then
CLIENT_IP=`ping -c 3 $name-hf0 -I hf0 2>/dev/null | grep "data" | sed 's/.* (\([0-9.]*\)).*/\1/' | uniq 2>&1`
if [ -n "$CLIENT_IP" ]
then
echo "DEVICE=hf0
NM_CONTROLLED=yes
IPADDR=$CLIENT_IP
NETMASK=255.0.0.0
ONBOOT=yes
" >/etc/sysconfig/network-scripts/ifcfg-hf0
ifdown hf0
ifup hf0
fi
fi
# Configure hf0-hf<n> interfaces one by one.
for i in 1 2 3 4 5 6 7
do
CLIENT_IP=`ping -c 3 $name-hf$i -I hf$i 2>/dev/null | grep "data" | sed 's/.* (\([0-9.]*\)).*/\1/' | uniq 2>&1`
if [ -n "$CLIENT_IP" ]
then
echo "DEVICE=hf$i
NM_CONTROLLED=yes
IPADDR=$CLIENT_IP
NETMASK=255.0.0.0
ONBOOT=yes
" >/etc/sysconfig/network-scripts/ifcfg-hf$i
ifdown hf$i
ifup hf$i
fi
done
else
NETMASK=255.0.0.0
if [[ $NTYPE = service ]]
then
CLIENT_IP=`ping -q -n -c 1 -w 1 $name-hf0 | grep PING |awk '{print $3}' | sed 's/(\(.*\)):/\1/' `
if [ -n $CLIENT_IP ]
then
mkhfi -i hf0 -a $CLIENT_IP -m $NETMASK
fi
fi
for i in 1 2 3
do
CLIENT_IP=`ping -q -n -c 1 -w 1 $name-hf$i | grep PING |awk '{print $3}' | sed 's/(\(.*\)):/\1/' `
if [ -n "$CLIENT_IP" ]
then
mkhfi -i hf$i -a $CLIENT_IP -m $NETMASK
fi
done
# Configure ml0 for AIX.
CLIENT_IP=`ping -q -n -c 1 -w 1 $name-ml0 | grep PING |awk '{print $3}' | sed 's/(\(.*\)):/\1/' `
if [ -n "$CLIENT_IP" ]
then
#Check whether the mlt0 is available
`lsdev -C | grep mlt0 | grep Available 2>&1 >/dev/null`
chdev -l ml0 -a state=detach
# Reconfig ml0 since HFx are configured after ml0 is available
rmdev -l mlt0
mkdev -l mlt0
chdev -l ml0 -a netaddr=$CLIENT_IP -a netmask=$NETMASK -a state=up
fi
fi