自动化安装和启动DS脚本

#!/bin/sh

#fabric broker path
FABRIC_HOME=/opt/qa/fabric/4.0
INSTALL_DIR=$FABRIC_HOME/datasynapse
GRIDLIB_DIR=$INSTALL_DIR/webapps/livecluster/deploy/resources/gridlib/

#fabric engine path
Engine_HOME=/opt/qa/engine
ENGINE_DIR=$Engine_HOME/stress0

TASK=$1

#fabric build info
BUILD_VERSION=4.1
SUB_VERSION=$2
FULL_VERSION=$BUILD_VERSION.$SUB_VERSION
BUILD_DIR=/u2/Releases/internal/Fabric_Builds/
TARGET_DIR=$BUILD_DIR$BUILD_VERSION/$FULL_VERSION
DISTRI_DIR=/u2/testing/currentversion/fabric/trunk/distributions/

#fabric WS env
FABRIC_TRUNK=/u2/testing/currentversion/fabric/trunk
FABRICSDK_HOME=$FABRIC_TRUNK/FabricServerSDK
TESTHARNESS2_DIR=$FABRIC_TRUNK/compiled_code/testharness-2

installBroker(){

if [ -d $INSTALL_DIR ];then
	echo "... $INSTALL_DIR is existing!"
	cd $INSTALL_DIR
	echo "... server is stopping ..."
	./server.sh stop > ../installBroker.log
	echo "... server stopped!"
	cd ..
	rm -rf datasynapse/
	echo "... $INSTALL_DIR removed!"
fi

if [ ! -d $FABRIC_HOME ];then
	echo "... $FABRIC_HOME is not existing!"
	mkdir $FABRIC_HOME
	echo "... $FABRIC_HOME created!"
	cd $FABRIC_HOME
fi

gunzip -c $TARGET_DIR/TIB_Silver_Fabric.$BUILD_VERSION.0.tar.gz > $FABRIC_HOME/TIB_Silver_Fabric.$BUILD_VERSION.0.tar
tar -xvf $FABRIC_HOME/TIB_Silver_Fabric.$BUILD_VERSION.0.tar  >> installBroker.log
echo "... TIB_Silver_Fabric.$BUILD_VERSION.0.tar.gz unzipped!"
rm -rf $FABRIC_HOME/TIB_Silver_Fabric.$BUILD_VERSION.0.tar
unzip -o $TARGET_DIR/TIB_Silver_Fabric.$BUILD_VERSION.0_3rd-Party-Libs.zip -d $INSTALL_DIR >> ../installBroker.log
echo "... TIB_Silver_Fabric.$BUILD_VERSION.0_3rd-Party-Libs.zip unzipped!"
cd $INSTALL_DIR
echo "... server is starting ..."
./server.sh start 
}

installEngine(){

if [ -z $BROKER_HOST ]
then
	echo "engine host not set yet"
	exit 1
fi

if [ -z $ENGINE_TYPE ]
then
	echo "engine type not set yet"
	echo "(SolarisX86|Linux64|Linux|Solaris|Aix)"
	exit 1
fi

ENGINE_URL=http://$BROKER_HOST:8080/livecluster/public_html/register/install/unixengine/DSEngine$ENGINE_TYPE.tar.gz

if [ -d $ENGINE_DIR/DSEngine ];then
	echo "... $ENGINE_DIR/DSEngine is existing!"
	cd $ENGINE_DIR/DSEngine
	./engine.sh stop > ../installEngine.log
	cd ..
	rm -rf DSEng*
	echo "$ENGINE_DIR/DSEngine removed!"
else
	mkdir $ENGINE_DIR
	echo "$ENGINE_DIR created!"
	cd $ENGINE_DIR
fi

wget $ENGINE_URL -o installEngine.log
echo "... DSEngine$ENGINE_TYPE.tar.gz downloaded!"
gzip -d DSEngine$ENGINE_TYPE.tar.gz
tar -xvf DSEngine$ENGINE_TYPE.tar >> installEngine.log
echo "... DSEngine$ENGINE_TYPE.tar.gz unzipped!"

cd DSEngine

./configure.sh -s $BROKER_HOST:8000 >> ../installEngine.log
echo "... new engine configured!"
echo "... new engine starting!"
./engine.sh start

}

deployContainers(){
	
for i in tomcat jboss weblogic websphere iis
do
	if [ $CONTAINER = all ]; then
		source=$TARGET_DIR/$i*.zip
		source=$source" "
		cp $source $GRIDLIB_DIR 
	elif [ $CONTAINER = $i ]; then
		cp $TARGET_DIR/$i*.zip $GRIDLIB_DIR
	else 
		continue
	fi	
done

}

deployDistributions(){

for i in tomcat jboss weblogic websphere iis
do
	if [ $CONTAINER = all ]; then
		source=$DISTRI_DIR/$i*.zip
		source=$source" "
		cp $source $GRIDLIB_DIR
	elif [ $CONTAINER = $i ]; then
		cp $DISTRI_DIR/$i*.zip $GRIDLIB_DIR
	else 
		continue
	fi	
done
}

deployContainerDistribution(){

if [ -z $CONTAINER_VERSION ]; then
	echo -e "container version not set yet\nSample: deployCD 0.5 jboss -eap4_3_0,4_2_1"
	exit 1
fi
		
for v in `echo $CONTAINER_VERSION| sed 's/,/ /g'`
do
	if [ $CONTAINER = websphere ]; then
		PLATFORM=`echo ${v##*-}`
		VERSION=`echo ${v%%-*}`
		cp $DISTRI_DIR/ibm-j2sdk-$PLATFORM-*.zip $GRIDLIB_DIR
		cp $TARGET_DIR/$CONTAINER$VERSION-container-gridlib.zip $GRIDLIB_DIR
		cp $DISTRI_DIR/$CONTAINER$v-distribution-gridlib.zip $GRIDLIB_DIR
	elif [ $CONTAINER = webspheredm ]; then
		PLATFORM=`echo ${v##*-}`
		VERSION=`echo ${v%%-*}`
		cp $DISTRI_DIR/ibm-j2sdk-$PLATFORM-*.zip $GRIDLIB_DIR
		cp $TARGET_DIR/$CONTAINER$VERSION-container-gridlib.zip $GRIDLIB_DIR
		_CONTAINER=`echo ${CONTAINER%%dm*}`
		cp $DISTRI_DIR/$_CONTAINER$v-distribution-gridlib.zip $GRIDLIB_DIR
	else
		cp $TARGET_DIR/$CONTAINER$v-container-gridlib.zip $GRIDLIB_DIR
		cp $DISTRI_DIR$CONTAINER$v-distribution-gridlib.zip $GRIDLIB_DIR
	fi
done
}

setupWsEnv(){
	export CLASSPATH=$TESTHARNESS2_DIR/fabric/classes/fabrictestharness_client.jar:$TESTHARNESS2_DIR/fabric/classes/fabrictestharness_server.jar:$TESTHARNESS2_DIR/util/lib/httpunit.jar:$TESTHARNESS2_DIR/fabric/util/parameters:$TESTHARNESS2_DIR/util/lib/jaxrpc.jar:$TESTHARNESS2_DIR/util/lib/axis.jar:$TESTHARNESS2_DIR/util/lib/commons-logging-1.0.4.jar:$TESTHARNESS2_DIR/util/lib/commons-discovery-0.2.jar:$TESTHARNESS2_DIR/util/lib/wsdl4j-1.5.1.jar:$TESTHARNESS2_DIR/util/lib/commons-httpclient-3.0.jar:$TESTHARNESS2_DIR/util/lib/commons-codec-1.3.jar
	echo $CLASSPATH 

}

checkSubVersion(){
	if [ -z $SUB_VERSION ]
	then
		echo "sub version number not set yet"
	exit
	fi
}

checkContainerName(){
	if [ -z $CONTAINER ]
	then
		echo -e "container not set yet\ncontainer list:\ntomcat jboss weblogic websphere"
		exit 1
	fi	
}

restartServer(){
	cd "$INSTALL_DIR"
	./server.sh stop >> ../installBroker.log
	echo "... server stopped!"
	./server.sh start >> ../installBroker.log
	echo "... server started!"
	cd "$FABRIC_HOME"
}

listGlidlib(){
	echo -e "$TESTHARNESS2_DIR/fabric/server/glz/$FOLDER"
	ls -C "$TESTHARNESS2_DIR/fabric/server/glz/$FOLDER" 
}

listDistribution(){
	echo -e "$DISTRI_DIR"
	ls -C "$DISTRI_DIR" 
}

listFSGridLibDir(){
	echo -e "$GRIDLIB_DIR"
	ls -C "$GRIDLIB_DIR" 
}

copyGridlib(){
	cp -f "$TESTHARNESS2_DIR/fabric/server/glz/$FOLDER/$GRIDLIB" "$GRIDLIB_DIR"
	echo -e "copied \n$TESTHARNESS2_DIR/fabric/server/glz/$FOLDER/$GRIDLIB\n to"
	find "$GRIDLIB_DIR" -name "$GRIDLIB"
}

usage(){
	echo -e "usage:\n"
	echo "setupBroker|setupB"
	echo -e "Sample: setupB 0.6\n"
	echo "setupEngine|setupE"
	echo -e "Sample: setupE qalx03 SolarisX86\n"
	echo "deployContainer|deployC"
	echo -e "Sample: deployC tomcat\n"
	echo "deployDistribution|deployD"
	echo -e "Sample: deployD websphere\n"
	echo "deployContainerDistribution|deployCD"
	echo "Sample: deployCD 0.6 jboss 4_2_1,-eap4_3_0,-eap5_0_0"
	echo "        deployCD 0.6 websphere 7_0-linux,7_0-linux64"
	echo -e "        deployCD 0.6 weblogic 10_0,8_1_sp4\n"
	echo "setupWS"
	echo -e "Sample: . ./installFS.sh setupWS\n"
	echo -e "restartBroker|restartB\n"
	echo "listGridlibs|lsglz"
	echo -e "Sample: lsglz no-deploy\n"
	echo "copyGridlibs|cpgl"
	echo -e "Sample: cpgl deploy jbosswebappgenericservicedomain-gridlib.zip\n"
	echo -e "listDistribution|lsD\n"
	echo -e "listFSGridlib|lsfsglz\n"
}

if [ -z $TASK ]
then
	echo "Task not set yet"
	exit
fi

case "$TASK" in 
	setupBroker | setupB)
		SUB_VERSION=$2
		checkSubVersion
		installBroker $SUB_VERSION;;
	setupEngine | setupE)
		BROKER_HOST=$2
		ENGINE_TYPE=$3
		echo "host $BROKER_HOST enginetype $ENGINE_TYPE"
		installEngine $BROKER_HOST $ENGINE_TYPE;;
	deployContainer | deployC)
		checkSubVersion
		CONTAINER=$3
		checkContainerName
		deployContainers $CONTAINER;;
	deployDistribution | deployD)
		checkSubVersion
		CONTAINER=$3
		checkContainerName
		deployDistributions $CONTAINER;;
	deployContainerDistribution | deployCD)
		checkSubVersion
		CONTAINER=$3
		checkContainerName
		CONTAINER_VERSION=$4
		deployContainerDistribution $CONTAINER $CONTAINER_VERSION;;
	setupWS)
                setupWsEnv;;
	restartBroker | restartB)
		restartServer;;
	listGridlibs | lsglz)
		FOLDER=$2
		listGlidlib $FOLDER;;
	copyGridlibs | cpgl)
		FOLDER=$2
		GRIDLIB=$3
		copyGridlib $FOLDER $GRIDLIB;;
	listDistribution | lsD)
		listDistribution;;
	listFSGridlib | lsfsglz)
		listFSGridLibDir;;
	*)
		usage;;

esac

猜你喜欢

转载自mxy0521.iteye.com/blog/1144990
今日推荐