#!/bin/sh # moabconf.sh: A basic script to cleanly configure and start Moab and TORQUE # on the specified node # #headconf.sh $HEADNODE $CLIENTNAME $CLIENTKEY PBSROOT="/usr/spool/PBS" # PBS root dir MOABHOMEDIR="/opt/moab" TMPNODEFILE="tmp.nodes.out" TMPMOABCFG="tmp.moab.cfg" TMPMOABPRV="tmp.moab-private.cfg" D="-------" # make output a little more readable if [ $# -ne 3 ] then echo USAGE: $0 HOSTNAME CLIENTNAME CLIENTKEY exit 1 fi HOSTNAME=$1 shift CLIENTNAME=$1 shift CLIENTKEY=$1 if [ ! -f $TMPNODEFILE ] then echo "no temporary node file $TMPNODEFILE" exit 1 fi ################### Setup TORQUE MOMs ############## COMPUTENODES=`cat $TMPNODEFILE` rm -f $TMPNODEFILE for NODE in $COMPUTENODES do echo $D Killing pbs_mom ssh root@$NODE "killall -s 9 pbs_mom" # Note: should remove old job files and accounting data # Note: should kill user processes echo $D Setting up $NODE config. ssh root@$NODE "echo \"\$clienthost $HOSTNAME\" > $PBSROOT/mom_priv/config" ssh root@$NODE "echo \"\$logevent 255\" >> $PBSROOT/mom_priv/config" # add server name to server_name file ssh root@$NODE "echo $HOSTNAME > $PBSROOT/server_name" echo $D Starting PBS Mom ssh root@$NODE "/usr/local/sbin/pbs_mom" done ################### Setup TORQUE Server ################### echo $D Setting up TORQUE server on $HOSTNAME echo $D Killing pbs_server on $HOSTNAME ssh root@$HOSTNAME "killall -s 9 pbs_server" ############ PBS Server setup ########### # Setup config file echo $D Setting up new config file on $HOSTNAME ssh root@$HOSTNAME "echo \"\$clienthost $HOSTNAME\" > $PBSROOT/mom_priv/config" ssh root@$HOSTNAME "echo \"\$logevent 255\" >> $PBSROOT/mom_priv/config" echo $D Setting up servername ssh root@$HOSTNAME "echo $HOSTNAME > $PBSROOT/server_name" # Grab real hostname PBSNAME=`ssh root@$HOSTNAME hostname` echo $D Setting up managers/operators ssh root@$HOSTNAME "echo \"root@$PBSNAME.icluster.org\" > $PBSROOT/server_priv/acl_svr/managers" ssh root@$HOSTNAME "echo \"root@$PBSNAME.icluster.org\" > $PBSROOT/server_priv/acl_svr/operators" echo $D Starting PBS Server # pbs_server -t create blocks ssh root@$HOSTNAME /usr/local/sbin/pbs_server -t create & # give pbs_server time to initialize sleep 2 ssh root@$HOSTNAME qterm echo $D Creating new nodelist file on $HOSTNAME ssh root@$HOSTNAME "echo > $PBSROOT/server_priv/nodes" for NODE in $COMPUTENODES do ssh root@$HOSTNAME "echo $NODE >> $PBSROOT/server_priv/nodes" done ssh root@$HOSTNAME pbs_server ################### Setup Moab ###################### echo $D Killing Moab on $HOSTNAME ssh root@$HOSTNAME "killall -s 9 moab" echo $D Clearing Moab directories ssh root@$HOSTNAME "rm -rf $MOABHOMEDIR/{log,stats,spool,traces}" ssh root@$HOSTNAME "mkdir $MOABHOMEDIR/log $MOABHOMEDIR/stats $MOABHOMEDIR/spool $MOABHOMEDIR/traces" ssh root@$HOSTNAME "chmod 1777 $MOABHOMEDIR/spool" #push $HOST $PORT $CLIENTKEYS echo $D Creating \"$TMPMOABCFG\" echo " SCHEDCFG[$HOSTNAME] SERVER=$HOSTNAME.icluster.org MODE=NORMAL RMCFG[$HOSTNAME] TYPE=PBS ADMINCFG[1] USERS=root" > $TMPMOABCFG echo $D Copying \"$TMPMOABCFG\" to default \"$MOABHOMEDIR/moab.cfg\" on $HOSTNAME scp $TMPMOABCFG root@$HOSTNAME:$MOABHOMEDIR/moab.cfg echo $D Removing \"$TMPMOABCFG\" rm -f $TMPMOABCFG # PUSH THE KEYS OVER echo "CLIENTCFG[RM:$CLIENTNAME] KEY=$CLIENTKEY AUTH=admin1" > $TMPMOABPRV echo $D Pushing \"$TMPMOABPRV\" to default \"$MOABHOMEDIR/moab-private.cfg\" on $HOSTNAME scp $TMPMOABPRV root@$HOSTNAME:$MOABHOMEDIR/moab-private.cfg echo $D Removing \"$TMPMOABPRV\" rm $TMPMOABPRV # START MOAB ON $HOSTNAME echo $D Starting \"/usr/local/sbin/moab\" on $HOSTNAME ssh -f root@$HOSTNAME "export MOABHOMEDIR=$MOABHOMEDIR;/usr/local/sbin/moab" ssh root@$HOSTNAME "/usr/local/bin/mschedctl -r2" echo " `date` Hostlist: $HOSTLIST Master: $HOSTNAME Clientname: $CLIENTNAME Key: $CLIENTKEY " >> moabconfig.log echo $D DONE.