下面是一个适用于 CentOS 系统部署 RabbitMQ 后自动初始化用户 的脚本,用于设置指定用户(如 root)及密码(如 xxx),并赋予管理员权限,避免主机名变动造成账号失效问题。
✅ 脚本功能
设置节点名固定(防止 hostname 变动影响)
创建管理员用户 root,密码 xxx
授权该用户访问所有资源
可反复执行,幂等
✅ 脚本内容:
init-rabbitmq-user.sh
#!/bin/bash
# === 配置项 ===
USERNAME="root"
PASSWORD="xxx"
VHOST="/"
NODE_NAME="rabbit@localhost" # 修改为你希望的固定节点名,如 rabbit@my-server
# === 设置节点名称(防止主机名变动) ===
CONF_FILE="/etc/rabbitmq/rabbitmq-env.conf"
echo "配置 RabbitMQ 节点名称为 $NODE_NAME"
mkdir -p /etc/rabbitmq
echo "NODENAME=$NODE_NAME" > $CONF_FILE
# 重启 RabbitMQ 服务使配置生效
echo "重启 RabbitMQ 服务..."
systemctl restart rabbitmq-server
# 等待启动完成
sleep 5
# === 添加用户 ===
echo "添加用户 [$USERNAME] 并设置密码..."
rabbitmqctl add_user $USERNAME $PASSWORD 2>/dev/null
# === 设置权限 ===
echo "设置用户 [$USERNAME] 权限..."
rabbitmqctl set_user_tags $USERNAME administrator
rabbitmqctl set_permissions -p $VHOST $USERNAME ".*" ".*" ".*"
# === 显示当前用户列表 ===
echo "当前用户列表:"
rabbitmqctl list_users
echo "✅ RabbitMQ 初始化完成!登录:http://<服务器IP>:15672 用户名:$USERNAME 密码:$PASSWORD"
✅ 使用方式
# 1. 保存脚本
vi init-rabbitmq-user.sh
# 2. 授权执行
chmod +x init-rabbitmq-user.sh
# 3. 运行脚本(建议用 root)
sudo ./init-rabbitmq-user.sh
✅ 示例结果
配置 RabbitMQ 节点名称为 rabbit@localhost
重启 RabbitMQ 服务...
添加用户 [root] 并设置密码...
设置用户 [root] 权限...
当前用户列表:
root [administrator]
✅ RabbitMQ 初始化完成!登录:http://<服务器IP>:15672 用户名:root 密码:xxx
评论区