单节点部署脚本
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
# ================================脚本结束================================
网友评论