美文网首页
15RabbitMQ单节点部署脚本

15RabbitMQ单节点部署脚本

作者: 鸡蛋挂面 | 来源:发表于2021-06-07 10:14 被阅读0次

单节点部署脚本
RabbitMQ.sh

#!/bin/bash

# 时间:2021年6月2日18点21分
# 项目:单节点部署RabbitMQ消息队列

# ================================脚本开始================================

# 变量定义:
# 下载链接
erlang_url=https://github.com/rabbitmq/erlang-rpm/releases/download/v22.0.7/erlang-22.0.7-1.el7.x86_64.rpm
rabbitmq_url=https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.18/rabbitmq-server-3.7.18-1.el7.noarch.rpm

# 下载后rpm的名字
erlang_rpm=`echo $erlang_url | rev | cut -d'/' -f 1 | rev`
rabbitmq_rpm=`echo $rabbitmq_url | rev | cut -d'/' -f 1 | rev`


# 1.下载并安装软件和依赖RPM包
cd /usr/local/src/
if [ ! -f "$erlang_rpm" ];then
    wget $erlang_url
        if [ ! `rpm -qa|grep erlang`  ];then
            rpm -ivh $erlang_rpm
        fi
    elif [ ! `rpm -qa|grep erlang`  ];then
        rpm -ivh $erlang_rpm
fi
if [ ! -f "$rabbitmq_rpm" ];then
    wget $rabbitmq_url
            if [ ! `rpm -qa|grep rabbitmq`  ];then
            rpm -ivh $rabbitmq_rpm
            fi
    elif [ ! `rpm -qa|grep rabbitmq`  ];then
        rpm -ivh $rabbitmq_rpm
fi
# 2.复制模板文件
cp /usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

# 3.修改配置文件
sed  -i '61a  {loopback_users, []}' /etc/rabbitmq/rabbitmq.config

# 4.启用页面管理插件
rabbitmq-plugins enable rabbitmq_management

# 5.启动rabbitmq服务
systemctl start rabbitmq-server.service


# 访问:开启管理界面后,查看15672端口是否成功启动
# 在浏览器地址栏输入:IP地址+端口号访问,默认的账号密码是guest/guest


# ================================脚本结束================================

主从架构的搭建脚本
RabbitMQ_Cluster_mq1.sh

#!/bin/bash

# 时间:2021年6月3日11点11分
# 项目:RabbitMQ消息队列主从架构的搭建——主节点配置

# ================================脚本开始================================

# 定义变量
mq1_ip=192.168.66.66
mq2_ip=192.168.66.67
mq3_ip=192.168.66.68

# 1.修改主机名
hostname mq1
hostnamectl set-hostname mq1
# 2.修改本地hosts文件
cat >/etc/hosts <<EOF
$mq1_ip  mq1
$mq2_ip  mq2
$mq3_ip  mq3
EOF
# 3.单节点部署
bash RabbitMQ.sh

# 4.先停掉RabbitMQ服务
systemctl stop rabbitmq-server.service
sleep 5
# 5.同步.erlang.cookie(可以自己将主节点的文件分发到各分从节点)
# 这里为了避免交互,直接写入文件
cat > /var/lib/rabbitmq/.erlang.cookie <<EOF
DBZJVLQOLVBPKQMXYLHO
EOF

# 6.后台启动RabbitMQ
rabbitmq-server -detached

# 7.查看集群状态
rabbitmqctl cluster_status

# 8.从节点停掉RabbitMQ,主节点不用操作
# rabbitmqctl stop_app

# 9.重置从节点并加入集群,最后启动(主节点不用此操作)
# rabbitmqctl reset
# rabbitmqctl join_cluster rabbit@mq1
# rabbitmqctl start_app

# 10.查看集群状态(任意节点)
# rabbitmqctl cluster_status

# 11.镜像集群搭建
# rabbitmqctl set_policy all '^' '{"ha-mode":"all","ha-sync-mode":"automatic"}'

# ================================脚本结束================================

RabbitMQ_Cluster_mq2.sh

#!/bin/bash

# 时间:2021年6月3日11点11分
# 项目:RabbitMQ消息队列主从架构的搭建——从节点配置

# ================================脚本开始================================

# 定义变量
mq1_ip=192.168.66.66
mq2_ip=192.168.66.67
mq3_ip=192.168.66.68

# 1.修改主机名
hostname mq2
hostnamectl set-hostname mq2
# 2.修改本地hosts文件
cat >/etc/hosts <<EOF
$mq1_ip  mq1
$mq2_ip  mq2
$mq3_ip  mq3
EOF
# 3.单节点部署
bash RabbitMQ.sh

# 4.先停掉RabbitMQ服务
systemctl stop rabbitmq-server.service
sleep 5

# 5.同步.erlang.cookie(可以自己将主节点的文件分发到各分从节点)
# 这里为了避免交互,直接写入文件
cat > /var/lib/rabbitmq/.erlang.cookie <<EOF
DBZJVLQOLVBPKQMXYLHO
EOF

# 6.后台启动RabbitMQ
rabbitmq-server -detached

# 7.查看集群状态
rabbitmqctl cluster_status

# 8.从节点停掉RabbitMQ,主节点不用操作
rabbitmqctl stop_app

# 9.重置从节点并加入集群,最后启动
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@mq1
rabbitmqctl start_app

# 10.查看集群状态(任意节点)
rabbitmqctl cluster_status

# ================================脚本结束================================

RabbitMQ_Cluster_mq3.sh

#!/bin/bash

# 时间:2021年6月3日11点11分
# 项目:RabbitMQ消息队列主从架构的搭建——从节点配置

# ================================脚本开始================================

# 定义变量
mq1_ip=192.168.66.66
mq2_ip=192.168.66.67
mq3_ip=192.168.66.68

# 1.修改主机名
hostname mq3
hostnamectl set-hostname mq3
# 2.修改本地hosts文件
cat >/etc/hosts <<EOF
$mq1_ip  mq1
$mq2_ip  mq2
$mq3_ip  mq3
EOF
# 3.单节点部署
bash RabbitMQ.sh

# 4.先停掉RabbitMQ服务
systemctl stop rabbitmq-server.service
sleep 5
# 5.同步.erlang.cookie(可以自己将主节点的文件分发到各分从节点)
# 这里为了避免交互,直接写入文件
cat > /var/lib/rabbitmq/.erlang.cookie <<EOF
DBZJVLQOLVBPKQMXYLHO
EOF

# 6.后台启动RabbitMQ
rabbitmq-server -detached

# 7.查看集群状态
rabbitmqctl cluster_status

# 8.从节点停掉RabbitMQ,主节点不用操作
rabbitmqctl stop_app

# 9.重置从节点并加入集群,最后启动
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@mq1
rabbitmqctl start_app

# 10.查看集群状态(任意节点)
rabbitmqctl cluster_status

# ================================脚本结束================================


二进制部署——单节点
RabbitMQ(二进制).sh

#!/bin/bash

# 时间:2021年6月3日15点41分
# 项目:单节点部署RabbitMQ消息队列——二进制编译安装

# ================================脚本开始================================

# 变量定义:
# 下载链接
erlang_url=http://www.erlang.org/download/otp_src_20.1.tar.gz
rabbitmq_url=https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.0/rabbitmq-server-generic-unix-3.7.0.tar.xz

# 下载后tar的名字
erlang_tar=`echo $erlang_url | rev | cut -d'/' -f 1 | rev`
rabbitmq_xd=`echo $rabbitmq_url | rev | cut -d'/' -f 1 | rev`

# 解压后软件目录
erlang_dir=`echo $erlang_tar |  cut -d'.' -f 1-2 `
rabbitmq_dir="rabbitmq_server-3.7.0"



# ==================================================================================
cd_erlang_dir(){
    pwd
    cd $erlang_dir
    if [ ! -f "config.log"  ];then
    ./configure --prefix=/usr/local/erlang --enable-smp-support --enable-threads --enable-sctp --enable-kernel-poll --enable-hipe --with-ssl --without-javac
    make && make install
    fi

}

tar_erlang(){
    tar -xf $erlang_tar
    cd_erlang_dir
}

wget_erlang_tar(){
    wger $erlang_url
    tar_erlang
}
# ==================================================================================
cd_rabbitmq_dir(){
    cd $rabbitmq_dir/sbin
    ./rabbitmq-server -detached
    ./rabbitmq-plugins enable rabbitmq_management
}

tar_rabbitmq(){
    tar -Jxf $rabbitmq_xd
    cd_rabbitmq_dir
}

wget_rabbitmq_tar(){
    wget $rabbitmq_url
    tar_rabbitmq
}

# ==================================================================================

# 清理环境
yum remove -y erlang*
# 安装编译环境
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson
# 安装JDK
yum -y install java-1.8.0-openjdk

# 1.下载并安装erlang包
cd /usr/local/src

if [ ! -d $erlang_dir  ]  ;then
    if [ ! -f $erlang_tar  ];then
        wget_erlang_tar
    else
        tar_erlang
    fi
else
    cd_erlang_dir
fi
    
cat >>/etc/profile <<EOF
export PATH=/usr/local/erlang/bin:\$PATH
EOF
source /etc/profile
cd /usr/local/src
# 安装RabbitMQ
if [ ! -d $rabbitmq_dir  ]  ;then
    if [ ! -f $rabbitmq_tar  ];then
        wget_rabbitmq_tar
    else
        tar_rabbitmq
    fi
else
    cd_rabbitmq_dir
fi


# ================================脚本结束================================




相关文章

网友评论

      本文标题:15RabbitMQ单节点部署脚本

      本文链接:https://www.haomeiwen.com/subject/afbosltx.html