Sophie

Sophie

distrib > Mandriva > 10.2 > x86_64 > by-pkgid > 2710f656e6073b1b4917317ddd1fe829 > files > 24

torque-1.2.0-1mdk.src.rpm

#!/bin/sh
# v 1.8
# very simple script file to configure PBS client or server 
# 
# set -xv

###############################################################
# set VAR there
###############################################################
PBS_HOME="/var/spool/pbs"
SBIN_PATH="/usr/sbin"
SHORTHOSTNAME=`hostname | awk -F. '{print $1}'`
DATE=`date +%d-%m-20%y`
DOMAINNAME=`domainname`
SERVERNAME=${SHORTHOSTNAME}
STARTNODEP="1"
FINISHNODEP="3"
NODENAME="node"
VERSION="2.3.16"
USERADMIN="root"
NODEADMIN="$SHORTHOSTNAME"

##############################################################
# load VAr from /etc/clusterserver.conf if present
##############################################################
CONFFILE="/etc/clusterserver.conf"
if  [ ! -f ${CONFFILE} ]; then
	echo 
        echo " Cant find ${CONFFILE} !"
	echo " Using default setup_pbs_server VAR"
else 
	. ${CONFFILE}
fi

##############################################################
##############################################################
##        !!!!!! DONT TOUCH BEHIND THOSE LINE !!!!!
##        (execpt you know waht you are doing.....)
##############################################################
##############################################################

# setup ${PBS_HOME}/server_name ${PBS_HOME}/mom_priv/config
set_servername() { 
echo " - Setting servername"
echo ${SERVERNAME} > ${PBS_HOME}/server_name
cp -f ${PBS_HOME}/mom_priv/config ${PBS_HOME}/mom_priv/config.sauv-${DATE}
sed -e 's/^\$clienthost.*/\$clienthost '${SHORTHOSTNAME}'/' ${PBS_HOME}/mom_priv/config.sauv-${DATE} > ${PBS_HOME}/mom_priv/config
}

# enter the configuration of ${PBS_HOME}/serv_priv/nodes file
config_file () {
echo " - Generating ${PBS_HOME}/server_priv/nodes"
clean_nodefile
if  [ -f ${CONFFILE} ]; then
	cat /etc/nodes_list > ${PBS_HOME}/server_priv/nodes
else
	for i in `seq ${STARTNODEP} ${FINISHNODEP}`
		do 
		echo ${NODENAME}${i}.${DOMAINNAME} >> ${PBS_HOME}/server_priv/nodes
	done
fi
}

# create default queue on the server
create_queue() {
check_service_started
echo " - Creating default queue with ${PBS_HOME}/pbs_config"
sed -e 's/DOMAINNAME/'$DOMAINNAME'/' ${PBS_HOME}/pbs_config.sample > ${PBS_HOME}/pbs_config
cat ${PBS_HOME}/pbs_config | qmgr
}

# cleanning config file to be sure that pbs_server will start 
clean_nodefile() {
echo " - Cleaning config file"
cp /dev/null ${PBS_HOME}/server_priv/nodes
}

# check service is started
check_service_started() {
echo " - Checking pbs_server running"
CHECK_STATUS=`pidof pbs_server`
if [ -z "${CHECK_STATUS}" ]; then
service pbs_server start
fi
}

# wich user on wich node can administrate the PBS Server
define_admin() {
check_service_started
echo " - Setting user admin"
echo "${USERADMIN}@*.${DOMAINNAME}" > ${PBS_HOME}/server_priv/acl_svr/managers
echo "${USERADMIN}@*.${DOMAINNAME}" > ${PBS_HOME}/server_priv/acl_svr/operators
echo "maui@*.${DOMAINNAME}" >> ${PBS_HOME}/server_priv/acl_svr/managers
echo "maui@*.${DOMAINNAME}" >> ${PBS_HOME}/server_priv/acl_svr/operators
echo "*.${DOMAINNAME}" > ${PBS_HOME}/server_priv/acl_svr/acl_hosts
}

# create queue
start_queue() {
echo " - Starting queue"
qstart  default small medium long verylong
qenable default small medium long verylong
}

adjust_xpbs() {
echo " - Adjusting xpbsmon environement"
perl -pi -e "s/\*sitesInfo:.*/\*sitesInfo: \{Local\;ICON\;$HOSTNAME\;$HOSTNAME\;$HOSTNAME\;MOM\;\{\{\( \( totmem \- availmem \) \/ totmem \) \* 100\} \{Memory Usage\:\} SCALE\} \{\{\( loadave \/ ncpus \) \* 100\} \{Cpu Usage\:\} SCALE\} \{nusers \{Number of Users\:\} TEXT\}\}/g" /usr/lib/xpbsmon/xpbsmonrc

echo " - Adjusting xpbs environement"           
perl -pi -e "s/^\*serverHosts:.*/\*serverHosts: $HOSTNAME/" /usr/lib/xpbs/xpbsrc
perl -pi -e "s/^\*selectHosts:.*/\*selectHosts: $HOSTNAME/" /usr/lib/xpbs/xpbsrc
}

						
####################################
# main program
####################################
check_packages
echo
echo " Setting up PBS server with default configuration !"
if [ -f /etc/clusterserver.conf ]; then
        echo " Look in /etc/clusterserver.conf to adjust"
else
        echo " Look in /usr/bin/setup_pbs_server to adjust"
fi
echo 
echo " Using those values to setup the PBS:"
echo "|---------------------------------------------------|"
echo "| domain:          ${DOMAINNAME}"
echo "|---------------------------------------------------|"
echo "| server name:     ${SERVERNAME}"
echo "|---------------------------------------------------|"
echo "| node name:       ${NODENAME}"
echo "|---------------------------------------------------|"
echo "| admin user:      ${USERADMIN} ${NODEADMIN}"
echo "|---------------------------------------------------|"
echo "| pbs directory:   ${PBS_HOME}"
echo "|---------------------------------------------------|"
sleep 3

case ${1} in
	queue)
	check_service_started
	create_queue
	;;
	admin)
	define_admin
	;;
	xpbs)
	adjust_xpbs
	;;
	all)
	clean_nodefile
	set_servername
	create_queue
	start_queue
	config_file
	define_admin
	adjust_xpbs
	service openpbs restart
	;;
	*)
	echo " usage $0: {queue|admin|xpbs|all}"
	echo
	echo " HELP:"
	echo " |------------------------------------------|"
	echo " | queue:   create queue on server          |"
	echo " | admin:   define PBS admin user           |"
	echo " | xpbs:    adjust files xpbsrc xpbsmon     |"
	echo " | all:     create queue, define admin user |"
	echo " |          set server_name                 |" 
	echo " |                                          |"
if [ -f /etc/clusterserver.conf ]; then   
	echo " | Check VAR in /etc/clusterserver.conf     |"
else
	echo " | Check VAR in /usr/bin/setup_pbs_server   |"
fi
	echo " |------------------------------------------|"
	;;
esac