一、部署背景
由于業務系統的特殊性,我們需要面向不通的客戶安裝我們的業務系統,而作為基礎元件中的重要的一環,我們需要針對不同的客戶環境需要多次部署 rabbitmq鏡像模式叢集,作為一個運維工程師,提升工作效率也是工作中的重要一環。是以我覺得有必要針對rabbitmq3.9.16鏡像模式高可用負載均衡叢集編寫自動化部署工具。
說明:如果有興趣,可以從工具下載下傳中擷取下載下傳連結,此工具可幫助你快速了解一個自動化部署工具是如何編寫的?
二、工具介紹
實作功能如下:
1、支援rabbitmq單執行個體部署
2、支援單機rabbitmq鏡像叢集部署
3、支援三台主機rabbitmq分布式鏡像叢集部署
4、支援資料目錄、日志目錄、插件目錄、配置檔案持久化
5、支援資料目錄、日志目錄、端口、賬号、密碼、記憶體閥值、磁盤閥值等參數靈活配置
6、支援建立、啟動、停止、檢測、解除安裝等功能
目錄結構如下:

三、工具下載下傳
基于docker-compose一鍵離線部署rabbitmq3.9.16鏡像叢集工具
四、部署要求
1、建議提前關閉好防火牆和selinux。
2、rabbitmq高可用負載均衡叢集是基于docker和docker-compose工具, 是以需要提前安裝好docker和docker-compose工具。
五、工具使用
說明:工具使用非常簡單,隻需要修改變量檔案,一分鐘就可以快速幫你部署rabbitmq鏡像模式叢集。
5.1、單執行個體部署
說明:單執行個體部署是指在一台伺服器上部署單個rabbtimq服務。
1、複制變量檔案
#複制變量檔案
[[email protected] haproxy_rabbitmq]# cp single.conf.tpl single.conf
2、編輯變量檔案
#編輯變量檔案
[[email protected] haproxy_rabbitmq]# vim single.conf
# 建議填寫為目前磁盤最大存儲空間目錄,如果系統盤空間最大,建議填寫為/data,如果挂在盤空間最大,建議填寫為挂載目錄
export BASE_DIR="/data"
# 主控端内網ip位址,根據實際情況填寫
export RABBITMQ_HOST="192.168.1.191"
# 用戶端連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ_PORT="5672"
# web管理端口,端口不沖突情況下,預設不修改
export RABBITMQ_MANAGEMENT_PORT="15672"
# 預設使用者密碼,可根據實際情況填寫,注意密碼格式為<大小寫英文字母+數字>,根據實際情況填寫
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"
# 記憶體告警閥值(相對值),建議值為0.4~0.7區間,根據實際情況修改
# 當MQ伺服器使用超過記憶體閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export VM_MEMORY_HIGH_WATERMARK_RELATIVE="0.6"
# 資料目錄磁盤空間閥值(絕對值),根據實際情況修改
# 當MQ伺服器資料目錄的磁盤空間超過閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export DISK_FREE_LIMIT_ABSOLUTE="5GB"
# 資料存儲目錄,一般選擇一個存儲空間比較大且速度快的分區目錄
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"
3、執行部署腳本
4、登入管理平台
5.2、單機僞叢集部署
說明:單機僞叢集是指在一台機器上部署haproxy+rabbitmq鏡像高可用負載均衡叢集。
1、複制變量檔案
#複制變量檔案
[[email protected] haproxy_rabbitmq]# cp allinone.conf.tpl allinone.conf
2、編輯變量檔案
#編輯變量檔案
[[email protected] haproxy_rabbitmq]# vim allinone.conf
# 建議填寫為目前磁盤最大存儲空間目錄,如果系統盤空間最大,建議填寫為/data,如果挂在盤空間最大,建議填寫為挂載目錄
export BASE_DIR="/data"
# 預設使用者密碼,可根據實際情況填寫,注意密碼格式為<大小寫英文字母+數字>,根據實際情況填寫
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"
# 資料存儲根目錄,一般選擇一個存儲空間比較大且速度快的分區目錄,預設不修改
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"
# 記憶體告警閥值(相對值),建議值為0.4~0.7區間,根據實際情況修改
# 當MQ伺服器使用超過記憶體閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export VM_MEMORY_HIGH_WATERMARK_RELATIVE="0.6"
# 資料目錄磁盤空間閥值(絕對值),根據實際情況修改
# 當MQ伺服器資料目錄的磁盤空間超過閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export DISK_FREE_LIMIT_ABSOLUTE="5GB"
# 目前主控端ip位址,根據實際情況填寫
export RABBITMQ_HOST="192.168.1.191"
#################################################<mq1節點變量>######################################################
# mq1節點主控端内網ip位址,預設不修改
export RABBITMQ1_HOST="${RABBITMQ_HOST}"
# mq1節點供用戶端建立連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ1_PORT="3001"
# mq1節點web頁面管理端口,端口不沖突情況下,預設不修改
export RABBITMQ1_MANAGEMENT_PORT="13001"
#################################################<mq2節點變量>######################################################
# mq2節點主控端内網ip位址,預設不修改
export RABBITMQ2_HOST="${RABBITMQ_HOST}"
# mq2節點供用戶端建立連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ2_PORT="3002"
# mq2節點web頁面管理端口,端口不沖突情況下,預設不修改
export RABBITMQ2_MANAGEMENT_PORT="13002"
#################################################<mq3節點變量>######################################################
# mq3節點主控端内網ip位址,預設不修改
export RABBITMQ3_HOST="${RABBITMQ_HOST}"
# mq3節點供用戶端建立連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ3_PORT="3003"
# mq3節點web頁面管理端口,端口不沖突情況下,預設不修改
export RABBITMQ3_MANAGEMENT_PORT="13003"
3、執行部署腳本
4、登入rabbtimq管理平台
5.3、分布式叢集部署
說明:分布式叢集部署是指在多台機器上部署haproxy+rabbitmq鏡像高可用負載均衡叢集。
1、複制變量檔案
2、編輯變量檔案
# 建議填寫為目前磁盤最大存儲空間目錄,如果系統盤空間最大,建議填寫為/data,如果挂在盤空間最大,建議填寫為挂載目錄
export BASE_DIR="/data"
# 預設使用者密碼,可根據實際情況填寫,注意密碼格式為<大小寫英文字母+數字>,根據實際情況填寫
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"
# 資料存儲根目錄,一般選擇一個存儲空間比較大且速度快的分區目錄,預設不修改
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"
# 記憶體告警閥值(相對值),建議值為0.4~0.7區間,根據實際情況修改
# 當MQ伺服器使用超過記憶體閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export VM_MEMORY_HIGH_WATERMARK_RELATIVE="0.6"
# 資料目錄磁盤空間閥值(絕對值),根據實際情況修改
# 當MQ伺服器資料目錄的磁盤空間超過閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export DISK_FREE_LIMIT_ABSOLUTE="5GB"
# mq1節點主控端内網ip位址,根據實際情況填寫
export RABBITMQ1_HOST="192.168.1.191"
# mq2節點主控端内網ip位址,根據實際情況填寫
export RABBITMQ2_HOST="192.168.1.192"
# mq3節點主控端内網ip位址,根據實際情況填寫
export RABBITMQ3_HOST="192.168.1.193"
3、将rabbitmq部署包拷貝到需要部署的主機上
[[email protected] pkgs]# scp -r rabbitmq [email protected]:/data/pkgs
[[email protected] pkgs]# scp -r rabbitmq [email protected]:/data/pkgs
4、執行部署腳本
#根據上述變量檔案
#1、192.168.1.191主機上執行
[[email protected] haproxy_rabbitmq]# ./op.sh build mq1
#2、192.168.1.192主機上執行
[[email protected] haproxy_rabbitmq]# ./op.sh build mq2
#3、192.168.1.193主機上執行
[[email protected] haproxy_rabbitmq]# ./op.sh build mq3
4、登入rabbtimq管理平台
總結:整理不易,如果對你有幫助,可否點贊關注一下?
更多詳細内容請參考:Linux運維實戰總結