当前位置: 首页 > news >正文

一键安装RabbitMQ脚本

文章目录

  • 一、脚本功能描述
  • 二、脚本内容
  • 三、预期输出
  • 四、注意事项

一、脚本功能描述

  1. 核心功能​:

    • 安装指定版本的 RabbitMQ (3.8.3-1)

    • 自动配置主机名解析

    • 添加 RabbitMQ 官方软件源

    • 安装必要依赖项

    • 启用并启动 RabbitMQ 服务

    • 验证安装结果

    • 可选启用管理界面

  2. 关键步骤​:

    • 获取系统发行版名称 (如 bionic、focal 等)

    • 获取服务器主 IP 地址

    • 添加 IP 地址到 /etc/hosts 的主机名解析

    • 安装 curl、gnupg 等必需工具

    • 导入 RabbitMQ 的 GPG 签名密钥

    • 添加包含 Erlang 和 RabbitMQ 的软件源

    • 安装指定版本的 RabbitMQ

    • 启用并立即启动服务

    • 检查服务状态

    • 交互式启用管理插件

  3. 安装流程

在这里插入图片描述

可以根据自己的实际需求修改脚本

二、脚本内容

脚本共65行,动动你的小手滚动查看

#!/bin/bash
#
#*********************************************************
#Author:            lhl
#Filename:          install_rabbitmq_ubuntu.sh
#Description:       RabbitMQ installation script for Ubuntu
#********************************************************# 设置 RabbitMQ 版本
MQ_VERSION="3.8.3-1"# 获取系统发行版名称
DISTRO_CODENAME=$(lsb_release -cs)# 获取主IP地址(更可靠的方法)
IP=$(hostname -I | awk '{print $1}')# 添加主机名解析
echo -e "\n[INFO] 添加主机名解析: $IP -> $(hostname)"
sudo sh -c "echo '$IP $(hostname)' >> /etc/hosts"# 安装必要依赖
echo -e "\n[INFO] 安装依赖包..."
sudo apt-get update
sudo apt-get install -y curl gnupg apt-transport-https software-properties-common# 导入GPG密钥
echo -e "\n[INFO] 导入RabbitMQ签名密钥..."
curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -# 添加软件源
echo -e "\n[INFO] 添加RabbitMQ软件源..."
sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
deb https://dl.bintray.com/rabbitmq-erlang/debian $DISTRO_CODENAME erlang
deb https://dl.bintray.com/rabbitmq/debian $DISTRO_CODENAME main
EOF# 更新软件包列表
echo -e "\n[INFO] 更新软件包列表..."
sudo apt-get update# 安装RabbitMQ指定版本
echo -e "\n[INFO] 安装RabbitMQ $MQ_VERSION..."
sudo apt-get install -y rabbitmq-server=$MQ_VERSION# 启用并启动服务
echo -e "\n[INFO] 启动RabbitMQ服务..."
sudo systemctl enable --now rabbitmq-server# 验证安装
echo -e "\n[INFO] 验证安装..."
if sudo systemctl is-active --quiet rabbitmq-server; thenecho -e "\n[SUCCESS] RabbitMQ 已成功安装并运行"echo "管理界面: http://$IP:15672 (默认用户: guest/guest)"
elseecho -e "\n[ERROR] RabbitMQ 服务未运行,请检查日志" >&2exit 1
fi# 可选:启用管理插件
read -p "是否启用RabbitMQ管理插件? [y/n] " choice
if [[ "$choice" =~ ^[Yy]$ ]]; thensudo rabbitmq-plugins enable rabbitmq_managementecho "管理插件已启用"
fi

三、预期输出

成功安装

[INFO] 添加主机名解析: 192.168.1.100 -> ubuntu-server
[INFO] 安装依赖包...
[INFO] 导入RabbitMQ签名密钥...
[INFO] 添加RabbitMQ软件源...
[INFO] 更新软件包列表...
[INFO] 安装RabbitMQ 3.8.3-1...
[INFO] 启动RabbitMQ服务...
[INFO] 验证安装...[SUCCESS] RabbitMQ 已成功安装并运行
管理界面: http://192.168.1.100:15672 (默认用户: guest/guest)是否启用RabbitMQ管理插件? [y/n] y
管理插件已启用

服务启动失败

[ERROR] RabbitMQ 服务未运行,请检查日志

四、注意事项

  1. 权限要求​:

    • 需要 root 权限执行所有操作

    • 使用 sudo 确保权限正确

  2. 网络要求​:

    • 需要访问 GitHub 和 bintray 下载资源

    • 如果网络有限制,可能需要代理或镜像源

  3. 默认用户​:

    • RabbitMQ 默认用户是 guest/guest

    • 出于安全考虑,生产环境应更改密码或创建新用户

  4. 防火墙配置​:

    • 脚本未配置防火墙

    • 如需访问管理界面(15672端口),需额外配置


欢迎您提出问题,并指正代码中的不足

请不要以此视为定论,这只是我的个人经验

http://www.dtcms.com/a/312534.html

相关文章:

  • ESP32学习-I2C(IIC)通信详解与实践
  • 线程锁-互斥、自旋、读写、原子操作、线程池
  • [硬件电路-147]:模拟电路 - DC/DC电压的三种架构:升压(Boost)、降压(Buck)或升降压(Buck-Boost)
  • GLM-4.5 解读:统一推理、编码与智能体的全能王
  • 利用AI渲染技术提升元宇宙用户体验的技术难点有哪些?
  • 微分方程模型:用“变化率”的语言,描绘世间万物的动态演化
  • 文本换行问题
  • [每周一更]-(第153期):**PDF终极防护指南:命令行全栈加密+一键权限锁死实战(附脚本模板)**
  • 前端JS-调用单删接口来删除多个选中文件
  • 前端 拼多多4399笔试题目
  • Spring 03 Web springMVC
  • 如何查看SoC线程的栈起始地址及大小
  • leecode2962 统计最大元素出现至少K次的子数组
  • 第12届蓝桥杯Scratch图形化【省赛】初级组 2021年4月24日
  • 从Docker衔接到导入黑马商城以及前端登录显示用户或密码错误的相关总结(个人理解,仅供参考)
  • 从传热学基础到有限元弱形式推导:拆解热传导问题Matlab有限元离散核心
  • C++ 信号处理
  • 【AI编程工具IDE/CLI/插件专栏】-国外IDE与Cursor能力对比
  • 【从零开始速通C语言1】 - 汇编语言1
  • 西门子PLC基础指令4:输出指令、立即输出指令
  • 信用衍生工具
  • 《基于特征融合的小目标检测方法及其在医学影像领域的应用研究》论文解析
  • Coin Combinations I(Dynamic Programming)
  • ThinkPHP 与 Vue.js 结合的全栈开发模式
  • 多线程(三)-线程安全原因与解决
  • Day26-二叉树的最小深度
  • 【软考中级网络工程师】知识点之 RIP 协议
  • C++ 之 【模拟实现 优先级队列】
  • SQL 地理空间原理与实现
  • slice() 和 splice()