2008-06-20 17:51:55 +00:00
|
|
|
#!/bin/sh
|
|
|
|
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
|
|
|
|
|
|
|
|
|
|
|
##########################################################################################
|
|
|
|
# This script is used for RMC node configuration
|
|
|
|
# usage:
|
|
|
|
# To add node to the cluster:
|
2008-06-24 20:45:27 +00:00
|
|
|
# NODE=nodename NODEID=fbb5ec1f64dd299c \
|
|
|
|
# MONSERVER=msname_or_ip MS_NODEID=fbb5ec1f64dd299c \
|
2008-06-20 17:51:55 +00:00
|
|
|
# configrmcnode 1
|
|
|
|
# To remove node to the cluster
|
|
|
|
# NODE=nodename configrmcnode -1
|
|
|
|
##########################################################################################
|
2008-06-25 14:50:11 +00:00
|
|
|
if [ -n "$1" ]; then
|
|
|
|
ADD=$1
|
|
|
|
else
|
|
|
|
ADD=1
|
|
|
|
fi
|
2008-06-20 17:51:55 +00:00
|
|
|
|
2008-06-24 20:45:27 +00:00
|
|
|
logger xCAT "configrmcnode: ADD=$ADD, NODE=$NODE, NODEID=$NODEID MONSERVER=$MONSERVER,MS_NODEID=$MS_NODEID"
|
2008-06-20 17:51:55 +00:00
|
|
|
|
|
|
|
#check if rsct is installed and running
|
|
|
|
if [ ! -e /usr/bin/lsrsrc ]; then
|
|
|
|
logger xCAT "RMC setup on node $NODE: RSCT is not is not installed."
|
|
|
|
exit 1;
|
|
|
|
fi
|
2008-06-24 20:45:27 +00:00
|
|
|
|
2008-06-26 21:17:50 +00:00
|
|
|
#stop rsct daemons
|
|
|
|
/usr/sbin/rsct/bin/rmcctrl -z
|
|
|
|
|
2008-06-24 20:45:27 +00:00
|
|
|
#ask RMC take the new nodeid
|
|
|
|
if [[ $NODEID != "" ]]; then
|
|
|
|
if [ -e /var/ct/cfg/ct_node_id ]; then
|
|
|
|
sed -i s/^[^\#].*$/$NODEID/ /var/ct/cfg/ct_node_id
|
|
|
|
else
|
|
|
|
echo $NODEID > /var/ct/cfg/ct_node_id
|
|
|
|
fi
|
|
|
|
if [ -e /etc/ct_node_id ]; then
|
|
|
|
sed -i s/^[^\#].*$/$NODEID/ /etc/ct_node_id
|
|
|
|
else
|
|
|
|
echo $NODEID > /etc/ct_node_id
|
|
|
|
fi
|
|
|
|
result=`/usr/sbin/rsct/install/bin/recfgct -s 2>&1`
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
logger xCAT "RMC setup on node $NODE: Cannot reconfig RSCT with new node id"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2008-06-20 17:51:55 +00:00
|
|
|
|
|
|
|
PID=`/bin/ps -ef | /bin/grep rmcd | /bin/grep -v grep | /bin/awk '{print $2}'`
|
|
|
|
if [ !$PID ]; then
|
|
|
|
#restart rmc daemon
|
|
|
|
result=`startsrc -s ctrmc 2>&1`;
|
|
|
|
if [ $? -gt 0 ]; then
|
|
|
|
logger xCAT "RMC deamon cannot be started on node $NODE:$result"
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ $ADD -eq 1 ]; then
|
2008-06-24 20:45:27 +00:00
|
|
|
#enable remote client connection
|
|
|
|
/usr/bin/rmcctrl -p; /usr/bin/refrsrc IBM.MCP
|
|
|
|
|
|
|
|
#get IP address of MS
|
|
|
|
ms_ip=$MONSERVER
|
2008-06-25 18:21:48 +00:00
|
|
|
result=`ping -c1 $MONSERVER 2>&1`
|
2008-06-24 20:45:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
index1=`expr index "$result" "\("`
|
|
|
|
index2=`expr index "$result" "\)"`
|
|
|
|
ms_ip=${result:$index1+1:$index2-$index1-2}
|
|
|
|
else
|
|
|
|
logger xCAT "RMC setup on node $NODE:$result"
|
|
|
|
fi
|
|
|
|
|
2008-06-20 17:51:55 +00:00
|
|
|
#define resource in IBM.MCP class on node
|
2008-06-24 20:45:27 +00:00
|
|
|
result1=`/usr/bin/mkrsrc-api IBM.MCP::MNName::"$NODE"::KeyToken::"$MONSERVER"::IPAddresses::"{\"$ms_ip\"}"::NodeID::0x$MS_NODEID 2>&1`
|
2008-06-20 17:51:55 +00:00
|
|
|
if [ $? -gt 0 ]; then
|
2008-06-21 21:12:33 +00:00
|
|
|
logger xCAT "Define resource in IBM.MCP class on node $NODE. result=$result1"
|
2008-06-20 17:51:55 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
2008-06-21 21:12:33 +00:00
|
|
|
|
2008-06-20 17:51:55 +00:00
|
|
|
#TODO: create predefined sensors
|
|
|
|
else
|
|
|
|
#remove resource in IBM.MCP class on the node
|
|
|
|
result2= `/usr/bin/rmrsrc-api -s IBM.MCP::"MNName=\\\"\"$NODE\\\"\"" 2>&1`
|
|
|
|
if [ $? -gt 0 ]; then
|
|
|
|
logger xCAT "Remove resource in IBM.MCP class on noderesult=$result2"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
exit 0;
|
|
|
|
|
|
|
|
|