搭建OpenStack的消息队列
OpenStack支持多种消息队列服务,包括RabbitMQ, Qpid和ZeroMQ。但是,大多数打包OpenStack的发行版都支持特定的消息队列服务。(本段引用OpenStack官方英文文档)
一、安装与配置(来自OpenStack官方文档)
1.安装软件包
// Install the package
# yum install rabbitmq-server
2.启动消息队列服务,并将其配置为在系统引导时启动
// Start the message queue service and configure it to start when the system boots
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
3.添加openstack用户
// Add the openstack user
# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...
替换RABBIT_PASS为合适的密码。(我使用密码为“admin”)
4.许用户配置,写入和读取访问权限 openstack
// Permit configuration, write, and read access for the openstack user
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
二、出现的问题
本人使用CentOS配置OpenStack,在配置此消息队列服务时出现一个错误,寻找了很多解决办法。
相信大家也可能会出现类似错误。
下面具体说下,我配置出现的错误。
在添加OpenStack账户时,报错:
[root@controller admin1]# rabbitmqctl add_user openstack admin
Error: unable to connect to node rabbit@[配置CentOS时你的主机名]: nodedown
DIAGNOSTICS
===========
attempted to contact: [rabbit@[配置CentOS时你的主机名]]
rabbit@[配置CentOS时你的主机名]:
* unable to connect to epmd (port 4369) on [配置CentOS时你的主机名]: nxdomain (non-existing domain)
current node details:
- node name: 'rabbitmq-cli-78@controller'
- home dir: /var/lib/rabbitmq
- cookie hash: lFMmQspM0wn8y/brhqEC5w==
问题关键可能是出在:Error: unable to connect to node rabbit@[配置CentOS时你的主机名]: nodedown
这个nodedown应该是节点宕机的意思。我去查了一下我的/etc/hosts文件。
# cat /etc/hosts
# controller
192.168.200.130 controller
# compute1
192.168.200.134 compute1
#block1
10.0.0.41 block1
#object1
10.0.0.51 object1
#boject2
10.0.0.52 object2
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
controller的名字和我的主机名是匹配的,但是为什么宕机呢?
找了很多解决办法都无法成功解决,直到我尝试了一下制定集群节点设置。灵感来自:
http://www.manongjc.com/detail/14-jmqwnkkyqtykwmu.html
三、解决办法
添加 -n rabbit@controller
[root@controller admin1]# rabbitmqctl add_user openstack admin -n rabbit@controller
Creating user "openstack"
输入下面语句同样出现此问题
[root@controller admin1]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Error: unable to connect to node rabbit@[配置CentOS时你的主机名]: nodedown
DIAGNOSTICS
===========
attempted to contact: [rabbit@[配置CentOS时你的主机名]]
rabbit@[配置CentOS时你的主机名]:
* unable to connect to epmd (port 4369) on wayeal: nxdomain (non-existing domain)
current node details:
- node name: 'rabbitmq-cli-98@controller'
- home dir: /var/lib/rabbitmq
- cookie hash: lFMmQspM0wn8y/brhqEC5w==
解决办法一样是定制集群节点。
添加 -n rabbit@controller
[root@controller admin1]# rabbitmqctl set_permissions openstack ".*" ".*" ".*" -n rabbit@controller
Setting permissions for user "openstack" in vhost "/"
总结:当你弄了好几个小时没结果,突然一次不经意的尝试,居然看到想要的结果,那种感觉是非常棒的。第一次写博客,算是对某个技术的总结与问题排查的具体描述,有没写到的地方或者有错的地方希望大家可以留言告诉我,感谢同学们的支持,感谢技术大佬的批评指正。
好了,我是彭摆鱼安徽分晏,咱们下篇文章见。