openstack 管理二十七 - rpm 方式部署 openstack [rabbitmq]

本文详细介绍了使用RPM方式部署OpenStack时,如何管理RabbitMQ,包括安装、启动、配置RabbitMQ,修改默认用户密码,为Cinder添加虚拟主机,创建其他服务的虚拟用户并赋予资源读写权限,最后提供了校验步骤来确认配置正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的

1.  配置 openstack 可用的 rabbitmq
2.  rabbitmq 用于存储 openstack 消息队列
3.  rabbitmq 作为数据存储中心
4.  openstack i 版中, rabbitmq 为 cinder, nova, neutron 组件进行数据存储,
5.  openstack h 版使用的是 qpid 进程, 经常出现进程队列堵塞现象, 导致无法创建新虚拟机

安装

yum install rabbitmq-server

启动

service rabbitmq-server start

配置

安装 rabbitmq 后, 默认创建 guest/guest 用户与密码, 可以利用下面方法修改密码

#  rabbitmqctl change_password guest openstack
Changing password for user "guest" ......done.

修改密码后, 为 cinder 添加虚拟主机

# rabbitmqctl add_vhost cinder
Creating vhost "cinder" ......done.

为其他服务创建虚拟用户

# rabbitmqctl add_user cinder openstack
Creating user "cinder" ......done.

# rabbitmqctl add_user nova openstack
Creating user "nova" ......done.

# rabbitmqctl add_user neutron openstack
Creating user "neutron" ......done.

为上述用户添加对资源的读写权限

# rabbitmqctl set_permissions cinder ".*" ".*" ".*" 
# rabbitmqctl set_permissions nova ".*" ".*" ".*" 
# rabbitmqctl set_permissions neutron ".*" ".*" ".*" 

校验

可用下面命令进行信息校验

# rabbitmqctl report

集群创建方法

第一步, 服务器启动

  1. 目标为两台 rabbitmq 服务器创建集群
  2. 先各自启动服务器 ( systemctl start rabbitmq-server)

第二部, 同步 cookie

  1. 注意 /var/lib/rabbitmq/.erlang.cookie 文件属性
  2. 两个服务器 cookie 文件必须内容一致
-r-------- 1 rabbitmq rabbitmq 20 Feb  7 00:00 /var/lib/rabbitmq/.erlang.cookie

利用 scp 复制到另外一台服务器则可确保内容一致

第三部。 获取第一台服务器节点名称信息

只需要在第一台上执行为了获取信息

# rabbitmqctl cluster_status
Cluster status of node 'rabbit@ns-yun-020037'              <--- 获取这里  rabbit@ns-yun-020037 字符
[{nodes,[{disc,['rabbit@ns-yun-020037']}]},
 {running_nodes,['rabbit@ns-yun-020037']},
 {cluster_name,<<"rabbit@ns-yun-020037.vclound.com">>},
 {partitions,[]},
 {alarms,[{'rabbit@ns-yun-020037',[]}]}]
第四部, 加入集群

再第二台上执行 (确保 当前服务器服务已经启动, cookie 文件已经同步)

执行下面命令加入第一台服务器

停止应用

# rabbitmqctl stop_app
Stopping rabbit application on node 'rabbit@ns-yun-020038'

加入集群 (输入第三部获取的服务器节点信息)

# rabbitmqctl join_cluster 'rabbit@ns-yun-020037'
Clustering node 'rabbit@ns-yun-020038' with 'rabbit@ns-yun-020037'

启动应用

# rabbitmqctl start_app
Starting node 'rabbit@ns-yun-020038'

验证集群状态

# rabbitmqctl cluster_status
Cluster status of node 'rabbit@ns-yun-020038'
[{nodes,[{disc,['rabbit@ns-yun-020037','rabbit@ns-yun-020038']}]},
 {running_nodes,['rabbit@ns-yun-020037','rabbit@ns-yun-020038']},
 {cluster_name,<<"rabbit@ns-yun-020037.vclound.com">>},
 {partitions,[]},
 {alarms,[{'rabbit@ns-yun-020037',[]},{'rabbit@ns-yun-020038',[]}]}]

启用高可用队列

# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
Setting policy "ha-all" for pattern "^" to "{\"ha-mode\":\"all\"}" with priority "0"

启用 WEB 管理器 (需要在每个 rabbitmq 服务器上执行)

# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@ns-yun-020037... started 6 plugins.

检查 WEB 端口 (需要在每个 rabbitmq 服务器上执行)

# netstat -ntl | grep 15672
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN

web 登录 ( 默认用户/密码 guest / guest ) 默认只允许本机登录

在这里插入图片描述
修改 guest 用户名密码定义方法

修改密码

# rabbitmqctl change_password guest user_vip
Changing password for user "guest"

需要修改 /etc/rabbitmq/rabbitmq.conf 或 /etc/rabbitmq/advanced.config

  {default_user, [{login,    "guest"},
                 {passcode, "guest"}]},           <- 可以修改密码  重启 rabbitmq 即可

添加 admin 账号

# rabbitmqctl add_user admin user_vip
Creating user "admin"

授权 admin 为管理员

# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator]

授权

# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值