《Linux运维实战:Centos7.6一键离线部署rabbitmq3.7.28集群》

文章目录

  • 一、部署背景
  • 二、部署工具
  • 三、部署演示
    • 3.1、单节点部署
    • 3.2、单机伪集群部署
    • 3.3、分布式集群部署
  • 总结:整理不易,如果对你有帮助,可否点赞关注一下?


一、部署背景

由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统,而作为基础组件中的rabbitmq针对不同的客户环境需要多次部署,作为一个运维工程师,提升工作效率也是工作中的重要一环。所以我觉得有必要针对rabbitmq3.7.28编写自动化部署工具。

说明:如果有兴趣,可以从工具下载中获取下载链接,此工具可帮助你快速了解一个自动化部署工具是如何编写的?


二、部署工具

rabbitmq-3.7.28集群一键部署工具

一键部署工具实现功能如下:
1、支持单节点部署
2、支持单机伪集群部署
3、支持多机分布式集群部署
4、支持数据目录、端口、用户、密码、内存限制参数灵活配置
5、plugin插件目录映射宿主机,支持插件安装
6、支持创建、启动、停止、重启、检测、卸载

目录结构如下:
在这里插入图片描述


三、部署演示

3.1、单节点部署

如下所示:

#############################################################################################################
#1、复制变量文件
[root@rabbitmq1 rabbitmq]# cp single.conf.tpl single.conf

#2、编辑变量文件
[root@rabbitmq1 rabbitmq]# vim single.conf
# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"

# 宿主机内网ip地址,根据实际情况填写
export RABBITMQ_HOST="192.168.1.242"

# 客户端连接端口,端口不冲突情况下,默认不修改
export RABBITMQ_PORT="5672"

# web管理端口,端口不冲突情况下,默认不修改
export RABBITMQ_MANAGEMENT_PORT="15672"

# 内存限制百分比
export RABBITMQ_MEM_WATERMARK="0.6"

# 默认用户密码,可根据实际情况填写,注意密码格式为<大小写英文字母+数字>,根据实际情况填写
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"

# 数据存储目录,一般选择一个存储空间比较大且速度快的分区目录
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"
#############################################################################################################
#3、执行部署脚本
[root@rabbitmq1 rabbitmq]# ./op.sh build single

效果如下图所示:
在这里插入图片描述


3.2、单机伪集群部署

#1、复制变量文件
[root@rabbitmq1 rabbitmq]# cp allinone.conf.tpl allinone.conf

#2、编辑变量文件
[root@rabbitmq1 rabbitmq]# vim allinone.conf
##################################################<公共变量>#######################################################
# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"

# 内存限制百分比
export RABBITMQ_MEM_WATERMARK="0.6"

# 默认用户密码,可根据实际情况填写,注意密码格式为<大小写英文字母+数字>,根据实际情况填写
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"

# 数据存储根目录,一般选择一个存储空间比较大且速度快的分区目录,默认不修改
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"
#######################################################################################################
# mq1节点宿主机内网ip地址,根据实际情况填写
export RABBITMQ1_HOST="192.168.1.242"

# mq1节点供客户端建立连接端口,端口不冲突情况下,默认不修改
export RABBITMQ1_PORT="3001"

# mq1节点web页面管理端口,端口不冲突情况下,默认不修改
export RABBITMQ1_MANAGEMENT_PORT="13001"
#######################################################################################################
# mq2节点宿主机内网ip地址
export RABBITMQ2_HOST="${RABBITMQ1_HOST}"

# mq2节点供客户端建立连接端口,端口不冲突情况下,默认不修改
export RABBITMQ2_PORT="3002"

# mq2节点web页面管理端口,端口不冲突情况下,默认不修改
export RABBITMQ2_MANAGEMENT_PORT="13002"
#######################################################################################################
# mq3节点宿主机内网ip地址
export RABBITMQ3_HOST="${RABBITMQ1_HOST}"

# mq3节点供客户端建立连接端口,端口不冲突情况下,默认不修改
export RABBITMQ3_PORT="3003"

# mq3节点web页面管理端口,端口不冲突情况下,默认不修改
export RABBITMQ3_MANAGEMENT_PORT="13003"
#####################################################################################################################

#3、执行部署脚本
[root@rabbitmq1 rabbitmq]# ./op.sh build allinone

效果如下图所示:
《Linux运维实战:Centos7.6一键离线部署rabbitmq3.7.28集群》_第1张图片


3.3、分布式集群部署

mq1节点部署
#1、复制变量文件
[root@rabbitmq1 rabbitmq]# cp /opt/rabbitmq/cluster.conf.tpl /opt/rabbitmq/cluster.conf

#2、编辑变量文件
[root@rabbitmq1 rabbitmq]# vim cluster.conf
##################################################<公共变量>#######################################################
# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"

# 内存限制百分比
export RABBITMQ_MEM_WATERMARK="0.6"

# 默认用户密码,可根据实际情况填写,注意密码格式为<大小写英文字母+数字>,根据实际情况填写
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"

# 数据存储根目录,一般选择一个存储空间比较大且速度快的分区目录,默认不修改
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"
#######################################################################################################
# mq1节点宿主机内网ip地址,根据实际情况填写
export RABBITMQ1_HOST="192.168.1.242"

# mq1节点EPMD端口,集群中的所有主机必须使用相同的端口,端口不冲突情况下,默认不修改
# <注意:如果修改当前变量,则RABBITMQ2_ERL_EPMD_PORT和RABBITMQ2_ERL_EPMD_PORT变量也必须修改为相同的端口号>
export RABBITMQ1_ERL_EPMD_PORT="4369"

# mq1节点供客户端建立连接端口,端口不冲突情况下,默认不修改
export RABBITMQ1_NODE_PORT="5672"

# mq1节点用于节点和CLI工具连接的端口,端口不冲突情况下,默认不修改
# <注意:端口号必须设置为 RABBITMQ1_DIST_PORT = RABBITMQ1_NODE_PORT + 20000>
export RABBITMQ1_DIST_PORT="25672"

# mq1节点web页面管理端口,端口不冲突情况下,默认不修改
export RABBITMQ1_MANAGEMENT_PORT="15672"
#######################################################################################################
# mq2节点宿主机内网ip地址,根据实际情况填写
export RABBITMQ2_HOST="192.168.1.227"

# mq2节点EPMD端口,集群中的所有主机必须使用相同的端口,端口不冲突情况下,默认不修改
# <注意:如果修改当前变量,则RABBITMQ1_ERL_EPMD_PORT和RABBITMQ3_ERL_EPMD_PORT变量也必须修改为相同的端口号>
export RABBITMQ2_ERL_EPMD_PORT="4369"

# mq2节点供客户端建立连接端口,端口不冲突情况下,默认不修改
export RABBITMQ2_NODE_PORT="5672"

# mq2节点用于节点和CLI工具连接的端口,端口不冲突情况下,默认不修改
# <注意:端口号必须设置为 RABBITMQ2_DIST_PORT = RABBITMQ2_NODE_PORT + 20000>
export RABBITMQ2_DIST_PORT="25672"

# mq2节点web页面管理端口,,端口不冲突情况下,默认不修改
export RABBITMQ2_MANAGEMENT_PORT="15672"
#######################################################################################################
# mq3节点宿主机内网ip地址,根据实际情况填写
export RABBITMQ3_HOST="192.168.1.45"

# mq3节点EPMD端口,集群中的所有主机必须使用相同的端口,端口不冲突情况下,默认不修改
# <注意:如果修改当前变量,则RABBITMQ1_ERL_EPMD_PORT和RABBITMQ2_ERL_EPMD_PORT变量也必须修改为相同的端口号>
export RABBITMQ3_ERL_EPMD_PORT="4369"

# mq3节点供客户端建立连接端口,端口不冲突情况下,默认不修改
export RABBITMQ3_NODE_PORT="5672"

# mq3节点用于节点和CLI工具连接的端口,端口不冲突情况下,默认不修改
# <注意:端口号必须设置为 RABBITMQ3_DIST_PORT = RABBITMQ3_NODE_PORT + 20000>
export RABBITMQ3_DIST_PORT="25672"

# mq3节点web页面管理端口,端口不冲突情况下,默认不修改
export RABBITMQ3_MANAGEMENT_PORT="15672"
#######################################################################################################################

#3、执行部署脚本
[root@rabbitmq1 rabbitmq]# ./op.sh build mq1

#4、将rabbitmq部署包复制到192.168.1.227和192.168.1.45主机上
[root@rabbitmq1 rabbitmq]# scp -r /opt/rabbitmq [email protected]:/opt
[root@rabbitmq1 rabbitmq]# scp -r /opt/rabbitmq [email protected]:/opt

#5、在192.168.1.227主机上部署mq2节点
[root@rabbitmq1 rabbitmq]# ./op.sh build mq2

#5、在192.168.1.45主机上部署mq3节点
[root@rabbitmq1 rabbitmq]# ./op.sh build mq3

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结

你可能感兴趣的:(《Linux运维工具分享》,运维,linux,服务器)