RabbitMq直接脚本,搭建集群脚本

  1. 创建文件夹:erlang和rabbitmq文件夹  mkdir /usr/rabbitmq
  2. 将文件移动到erlang和rabbitmq文件夹中  mkdir /usr/rabbitmq
  3. 执行script.sh脚本  ./script.sh
  4. 重新编译profile文件   source /etc/profile
  5. 关闭防火墙   systemctl stop firewalld
  6. 访问http://{host}:15672 可以访问到rabbit web界面即可

 

 

#!/bin/bash
cd /usr/erlang
tar -zxvf otp_src_21.3.tar.gz
cd otp_src_21.3
# 判断安装erlang语言所需要安装的依赖
gcc=`rpm -qa gcc | wc -l`
if (($gcc<1)); then
    yum install gcc -y
fi
perl=`rpm -qa perl | wc -l`
if (($perl<1)); then
    yum install perl -y
fi
ncd=`rpm -qa ncurses-devel | wc -l`
if (($ncd<1)); then
    yum install ncurses-devel -y
fi
opd=`rpm -qa openssl-devel | wc -l`
if (($opd<1)); then
    yum install openssl-devel -y
fi
./configure --prefix=/usr/erlang/otp_src_21.3 --without-javac
make && make install
echo 'export PATH=$PATH:/usr/erlang/otp_src_21.3/bin' >> /etc/profile

# 安装rabbitmq
cd /usr/rabbitmq
xz -d rabbitmq-server-generic-unix-3.7.17.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.17.tar
echo 'export PATH=$PATH:/usr/rabbitmq/rabbitmq_server-3.7.17/sbin' >> /etc/profile
source /etc/profile
rabbitmq-plugins enable rabbitmq_management
echo "-----------------------install rabbitmq is ok...-------------------------------------"
echo "-----------------------请重新运行命令 source /etc/profile!!--------------------------"
echo "-----------------------请重新运行命令 source /etc/profile!!--------------------------"

A为主服务器

B为备用服务器

C和B操作相同

编辑A服务器 vi /etc/hostname 增加 rabbitmq1

编辑B服务器 vi /etc/hostname 增加 rabbitmq2

编辑A服务器 vi /etc/hosts              增加 B的IP  rabbitmq2

编辑B服务器 vi /etc/hosts        增加 A的IP  rabbitmq1

在A和B服务器上分别执行

hostname $(cat /etc/hostname)

然后重新登录一下

2.1  A服务器运行命令  =>   rabbitmq-server  -detached

2.2  将A服务器上的 .erlang.config拷贝到另一台B服务器上。

.erlang.cookie此文件是隐藏文件,一般是登录者的家目录中

2.3 启动B服务器的rabbitmq,运行命令: =>  rabbitmq-server -detached

2.4 在B服务器执行命令  =>  rabbitmqctl stop_app

2.5 在B服务器执行命令  =>  rabbitmqctl join_cluster --ram rabbit@rabbitmq1

#!/bin/bash
rabbitmq1ip='172.18.17.8'
rabbitmq2ip='172.18.17.9'
rabbitmq3ip=''
hostismaster=1
countrabbitmq1=`cat /etc/hosts | grep -w rabbitmq1 | wc -l`
if (( $countrabbitmq1<1 ));then
    `echo $rabbitmq1ip rabbitmq1 >> /etc/hosts`
fi
countrabbitmq2=`cat /etc/hosts | grep -w rabbitmq2 | wc -l`
if (( $countrabbitmq2<1 ));then 
   `echo $rabbitmq2ip rabbitmq2 >> /etc/hosts`
fi
countrabbitmq3=`cat /etc/hosts | grep -w rabbitmq3 | wc -l`
if [[ $rabbitmq3ip != '' ]];then
   if (( $countrabbitmq3<1 ));then
       `echo $rabbitmq3ip rabbitmq3 >> /etc/hosts`
   fi
fi
if (( $hostismaster==1 )); then
    echo rabbitmq1 > /etc/hostname
    `scp /root/.erlang.cookie  root@$rabbitmq2ip:/root/`
    if [[ rabbitmq3ip != '' ]]; then
        `scp /root/.erlang.cookie  root@$rabbitmq3ip:/root/`
    fi
    else
    if (( $hostismaster==2 )); then
        echo rabbitmq2 > /etc/hostname
    fi
    if (( $hostismaster==3 )); then
        echo rabbitmq3 > /etc/hostname
    fi
fi

countrabbitmq=`ps -ef | grep rabbitmq | wc -l`
if (( $countrabbitmq<2 ));then
     rabbitmq-server -detached
fi
if (( $hostismaster>1 )); then
    rabbitmqctl stop_app
    rabbitmqctl join_cluster --ram rabbit@rabbitmq1
fi

 

posted @ 2019-10-24 08:48  MrSans  阅读(274)  评论(0)    收藏  举报