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 &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值