NC Cloud 部署基于WAS的linux水平集群,辅助运维工具

注:通用版的待完善

已邀请:

综述:本脚本供linux场景下的WAS水平集群运维管理使用。master节点运行在10.10.25.100,运维脚本在10.10.25.100上运行,运行前配置对集群全部主机(包括自己)的免密。

#!/bin/bash
ulimit -n 88888
stty erase '^H' 

wasbin=/data/IBM/WebSphere/AppServer/profiles/App01/bin

masterip=10.10.25.100
list=(ncMem01:10.10.25.100 ncMem02:10.10.25.101 ncMem03:10.10.25.101)
clusternodes=(10.10.25.100 10.10.25.101)

echo "当前资源池信息:"
for hostip in ${clusternodes[*]}
do
echo "检查$hostip下的nodeagent-pid:";ssh root@$hostip "ps -ef |grep nodeagent/configuration | grep -v grep |awk -F \" \" '{print \$2}'"
done


was_stop_all(){
for i in ${list[*]}
do
echo $i > /tmp/tmpi
clusterhostip=`cat /tmp/tmpi | awk -F ":" '{print $2}'`
clusterservername=`cat /tmp/tmpi | awk -F ":" '{print $1}'`

echo "检查$clusterhostip下的$clusterservername状态:"; ssh root@$clusterhostip "ps -ef |grep $clusterservername | grep com.ibm.ws.runtime.WsServer |  grep -v grep |awk -F \" \" '{print \$2}'"

if [ $? = 1 ]
then
echo "$clusterservername 运行异常"
else
echo "正在停止位于$clusterhostip的$clusterservername"
( ssh root@$clusterhostip "/data/IBM/WebSphere/AppServer/profiles/App01/bin/stopServer.sh $clusterservername" )&
sleep 0.5
fi

done

echo "等待服务停止状态,休眠20秒..."
sleep 20
echo "节点停止完成,正在停止位于$masterip的master服务"
ssh root@$masterip "/data/IBM/WebSphere/AppServer/profiles/App01/bin/stopServer.sh master"
}


was_start_all(){

echo "即将启动全部服务..."

for ((i=5;i > 0;i--))
do
echo "即将于$i秒后进入启动流程..."
done

echo "正在启动位于$masterip的master服务"
ssh root@$masterip "/data/IBM/WebSphere/AppServer/profiles/App01/bin/startServer.sh master &"
sleep 10

for i in ${list[*]}
do
echo $i > /tmp/tmpi
clusterhostip=`cat /tmp/tmpi | awk -F ":" '{print $2}'`
clusterservername=`cat /tmp/tmpi | awk -F ":" '{print $1}'`
echo "正在启动位于$clusterhostip的$clusterservername"
(ssh root@$clusterhostip "/data/IBM/WebSphere/AppServer/profiles/App01/bin/startServer.sh $clusterservername" )&
done
}


was_restart(){
echo "正在停止位于$1上的${2}..."
ssh root@$1 "/data/IBM/WebSphere/AppServer/profiles/App01/bin/stopServer.sh $2"
sleep 8
echo "正在启动位于$1上的${2}..."
ssh root@$1 "/data/IBM/WebSphere/AppServer/profiles/App01/bin/startServer.sh $2"
}



echo "欢迎使用S5-伊泰集团WAS水平集群运维工具"

echo "请输入对应操作前的序号1-N,启动对应操作"
echo -e "\033[36m 0 重启master \033[0m"
echo -e "\033[36m 1 重启ncMem01 \033[0m"
echo -e "\033[36m 2 重启ncMem02 \033[0m"
echo -e "\033[36m 3 重启ncMem03 \033[0m"
echo -e "\033[36m 4 停止整个集群 \033[0m"
echo -e "\033[36m 5 启动整个集群 \033[0m"
echo -e "\033[36m 6 重启整个集群 \033[0m"
read -p "请选择要进行的操作(0-5):" choice

case $choice in

0)
echo "3秒后,重启master。。。"
sleep 3
was_restart 10.10.25.100 master
;;
1)
echo "3秒后,重启ncMem01。。。"
sleep 3
was_restart 10.10.25.100 ncMem01
;;
2)
echo "3秒后,重启ncMem02。。。"
sleep 3
was_restart 10.10.25.101 ncMem02
;;
3)
echo "3秒后,重启ncMem03。。。"
sleep 3
was_restart 10.10.25.101 ncMem03
;;
4)
echo "3秒后,停止整个集群。。。"
sleep 3
was_stop_all
;;
5)
echo "3秒后,启动整个集群。。。"
sleep 3
was_start_all
;;
6)
echo "3秒后,重启整个集群。。。"
sleep 3
was_stop_all
sleep 5
was_start_all
;;
*)
echo "无效输入,退出!"
;;

esac



例如重启整个集群的过程如下:

1、执行脚本

2、输入6,确认


/uploads/files_user1/answer/5e9faf67b9ae1821427.png

要回复问题请先登录注册