shell-集羣-自動打包部署-2 - 夜幕思年華

  • 現在着手的項目是一個集羣化的,佔用9臺服務器,每次更新包都是件頭疼的事情,索性自動化部署吧!
  • 原先一個人更換完需要15-20分鐘左右,現在1分鐘就全部完成啦!

前提,本地和各個服務器都安裝sspass
   centos7安裝
   yum install -y epel-release
   yum repolist
   yum install -y sshpass
   mac安裝
   brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
   機器
   192.168.33.101
   192.168.33.102
   192.168.33.103
   192.168.33.104
   192.168.33.105
   192.168.33.106 
   192.168.33.107
   192.168.33.108
   192.168.33.109
  • 本地腳本
IM_HOME=/Users/xiaocai/文件/IM_WEN

#wms
L_WMS_PATH=$IM_HOME/wms-subject/wm-gw-web-api/target/wm-gw-web-api.jar
#單聊
L_P_PATH=$IM_HOME/wms-im-p/target/im_p.jar
#羣聊
L_G_PATH=$IM_HOME/wms-im-g/target/im_g.jar
#集市
L_M_PATH=$IM_HOME/wms-im-market/target/im_market.jar
#羣聊離線
L_G_OFF_PATH=$IM_HOME/wms-im-off/target/message_dispatcher.jar
#單聊負載
L_P_PROXY_PATH=$IM_HOME/wms-proxy-p/target/im_proxy.jar
#羣聊負載
L_G_PROXY_PATH=$IM_HOME/wms-proxy-g/target/im_g_proxy.jar
#集市負載
L_M_PROXY_PATH=$IM_HOME/wms-proxy-m/target/im_m_proxy.jar

#服務器
PWD=123123
L_101=192.168.33.101
L_102=192.168.33.102
L_103=192.168.33.103
L_104=192.168.33.104
L_105=192.168.33.105
L_106=192.168.33.106
L_107=192.168.33.107
L_108=192.168.33.108
L_109=192.168.33.109

#遠程包目錄
#wms
R_WMS_PATH=/data/wmsMobile/
#單聊
R_P_PATH=/data/im_p/
#羣聊
R_G_PATH=/data/im_g/
#集市
R_M_PATH=/data/market/
#羣聊離線
R_G_OFF_PATH=/data/message_dispatcher/
#單聊負載
R_P_PROXY_PATH=/data/im_proxy/
#羣聊負載
R_G_PROXY_PATH=/data/im_g_proxy/
#集市負載
R_M_PROXY_PATH=/data/proxy_m/

#wms
sshpass -p $PWD scp -r $L_WMS_PATH root@$L_104:$R_WMS_PATH
if [ $? -eq 0 ]; then
    echo "wms-上包成功"
else
    echo "wms-上包失敗"
fi 


#單聊
sshpass -p $PWD scp -r $L_P_PATH root@$L_106:/$R_P_PATH
sshpass -p $PWD scp -r $L_P_PATH root@$L_107:/$R_P_PATH
if [ $? -eq 0 ]; then
    echo "單聊-上包成功"
else
    echo "單聊-上包失敗"
fi 

#羣聊
sshpass -p $PWD scp -r $L_G_PATH root@$L_106:/$R_G_PATH
sshpass -p $PWD scp -r $L_G_PATH root@$L_107:/$R_G_PATH
if [ $? -eq 0 ]; then
    echo "羣聊-上包成功"
else
    echo "羣聊-上包失敗"
fi 

#集市
sshpass -p $PWD scp -r $L_M_PATH root@$L_108:/$R_M_PATH
sshpass -p $PWD scp -r $L_M_PATH root@$L_109:/$R_M_PATH
if [ $? -eq 0 ]; then
    echo "集市-上包成功"
else
    echo "集市-上包失敗"
fi 

#羣聊離線
sshpass -p $PWD scp -r $L_G_OFF_PATH root@$L_103:/$R_G_OFF_PATH
sshpass -p $PWD scp -r $L_G_OFF_PATH root@$L_105:/$R_G_OFF_PATH
if [ $? -eq 0 ]; then
    echo "羣聊離線-上包成功"
else
    echo "羣聊離線-上包失敗"
fi 

 #單聊負載
sshpass -p $PWD scp -r $L_P_PROXY_PATH root@$L_101:/$R_P_PROXY_PATH
sshpass -p $PWD scp -r $L_P_PROXY_PATH root@$L_102:/$R_P_PROXY_PATH
if [ $? -eq 0 ]; then
    echo "單聊負載-上包成功"
else
    echo "單聊負載-上包失敗"
fi 

 #羣聊負載
sshpass -p $PWD scp -r $L_G_PROXY_PATH root@$L_101:/$R_G_PROXY_PATH
sshpass -p $PWD scp -r $L_G_PROXY_PATH root@$L_102:/$R_G_PROXY_PATH
if [ $? -eq 0 ]; then
    echo "羣聊負載-上包成功"
else
    echo "羣聊負載-上包失敗"
fi 

#集市負載
sshpass -p $PWD scp -r $L_M_PROXY_PATH root@$L_108:/$R_M_PROXY_PATH
sshpass -p $PWD scp -r $L_M_PROXY_PATH root@$L_109:/$R_M_PROXY_PATH
if [ $? -eq 0 ]; then
    echo "集市負載-上包成功"
else
    echo "集市負載-上包失敗"
fi 

# 各服務器執行腳本
# 101
sshpass -p $PWD  ssh root@$L_101 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "101_success"
else
    echo "101_fail"
fi 

#102
sshpass -p $PWD  ssh root@$L_102 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "102_success"
else
    echo "102_fail"
fi 

#103
sshpass -p $PWD  ssh root@$L_103 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "103_success"
else
    echo "103_fail"
fi 

#104
sshpass -p $PWD  ssh root@$L_104 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "104_success"
else
    echo "104_fail"
fi 

#105
sshpass -p $PWD  ssh root@$L_105 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "105_success"
else
    echo "105_fail"
fi 

#106
sshpass -p $PWD  ssh root@$L_106 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "106_success"
else
    echo "106_fail"
fi 

#107
sshpass -p $PWD  ssh root@$L_107 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "107_success"
else
    echo "107_fail"
fi 

#108
sshpass -p $PWD  ssh root@$L_108 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"
if [ $? -eq 0 ]; then
    echo "108_success"
else
    echo "108_fail"
fi 

#109
sshpass -p $PWD  ssh root@$L_109 "source /etc/profile;cd /data;sh start.sh >/dev/null 2>log &"

if [ $? -eq 0 ]; then
    echo "109_success"
else
    echo "109_fail"
fi 

每臺服務器/data目錄下,各放一份,自動殺掉進程,自動啓動的腳本,以104機器爲例

cd /data/gw-user-center/
ps -ef | grep gw-user-center.jar | grep -v grep | awk '{print $2}' | xargs kill -9
nohup java -jar gw-user-center.jar >/data/gw-user-center/nohup.out &

#wms
cd /data/wmsMobile/
ps -ef | grep wm-gw-web-api.jar | grep -v grep | awk '{print $2}' | xargs kill -9
nohup java -jar wm-gw-web-api.jar >/data/wmsMobile/nohup.out &
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章