mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-03 21:02:34 +00:00 
			
		
		
		
	git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@1802 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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:
 | 
						|
#    NODE=nodename NODEID=fbb5ec1f64dd299c \
 | 
						|
#    MONSERVER=msname_or_ip MS_NODEID=fbb5ec1f64dd299c \
 | 
						|
#    configrmcnode 1    
 | 
						|
#  To remove node to the cluster 
 | 
						|
#    NODE=nodename configrmcnode -1
 | 
						|
########################################################################################## 
 | 
						|
if [ -n "$1" ]; then 
 | 
						|
  ADD=$1
 | 
						|
else
 | 
						|
  ADD=1
 | 
						|
fi
 | 
						|
 | 
						|
logger xCAT "configrmcnode: ADD=$ADD, NODE=$NODE, NODEID=$NODEID MONSERVER=$MONSERVER,MS_NODEID=$MS_NODEID"
 | 
						|
 | 
						|
#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
 | 
						|
 | 
						|
#ask RMC take the new nodeid
 | 
						|
if [[ $NODEID != "" ]]; then
 | 
						|
  #stop all rmc daemons
 | 
						|
  /usr/sbin/rsct/bin/rmcctrl -z
 | 
						|
 | 
						|
  #get new nodeid into id files
 | 
						|
  if [ -e /var/ct/cfg/ct_node_id ]; then
 | 
						|
    sed s/^[^\#].*$/$NODEID/ /var/ct/cfg/ct_node_id > /tmp/id.tmp
 | 
						|
  else
 | 
						|
    if [ -e /etc/ct_node_id ]; then
 | 
						|
      sed s/^[^\#].*$/$NODEID/ /etc/ct_node_id >  /tmp/id.tmp
 | 
						|
    else 
 | 
						|
      echo $NODEID > /tmp/id.tmp
 | 
						|
    fi
 | 
						|
  fi
 | 
						|
  cp /tmp/id.tmp /var/ct/cfg/ct_node_id
 | 
						|
  cp /tmp/id.tmp /etc/ct_node_id
 | 
						|
  rm /tmp/id.tmp
 | 
						|
 | 
						|
  #reconfig RMC
 | 
						|
  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
 | 
						|
 | 
						|
  
 | 
						|
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
 | 
						|
  #enable remote client connection
 | 
						|
  /usr/bin/rmcctrl -p; /usr/bin/refrsrc IBM.MCP
 | 
						|
 | 
						|
  #get IP address of MS
 | 
						|
  ms_ip=$MONSERVER
 | 
						|
  result=`ping -c1 $MONSERVER 2>&1`
 | 
						|
  if [ $? -eq 0 ]; then
 | 
						|
    index1=`expr index "$result" "\("`
 | 
						|
    index2=`expr index "$result" "\)"`
 | 
						|
    #ms_ip=${result:$index1+1:$index2-$index1-2}
 | 
						|
    pos=`expr $index1 + 1`
 | 
						|
    length=`expr $index2 - $index1`
 | 
						|
    length=`expr $length - 1`
 | 
						|
    ms_ip=`expr substr "$result" $pos $length`
 | 
						|
  else
 | 
						|
    logger xCAT "RMC setup on node $NODE:$result"
 | 
						|
  fi
 | 
						|
 | 
						|
  #define resource in IBM.MCP class on node       
 | 
						|
  result1=`/usr/bin/mkrsrc-api IBM.MCP::MNName::"$NODE"::KeyToken::"$MONSERVER"::IPAddresses::"{\"$ms_ip\"}"::NodeID::0x$MS_NODEID 2>&1`
 | 
						|
  if [ $? -gt 0 ]; then
 | 
						|
    logger xCAT  "Define resource in IBM.MCP class on node $NODE. result=$result1" 
 | 
						|
    exit 1
 | 
						|
  fi
 | 
						|
 | 
						|
  #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;
 | 
						|
 | 
						|
 |