我在运行Rabbitmq-server的情况下设置了控制器主机。从新星宿主中,我看到无法接触到新星导体。我检查了控制器主机,并在日志中看到以下内容:
access to vhost 'None' refused for user 'openstack'
我在控制器主机上对Rabbitmq具有以下配置设置:
rabbitmqctl list_users
Listing users ...
guest [administrator]
openstack []
当我列出权限时,我看到openstack可以访问所有资源
list_permissions
Listing permissions in vhost "/" ...
guest .* .* .*
openstack .* .* .*
我能够通过Rabbitmq服务器进行身份验证-只是无法访问/ vhost。对于调试,我想进行设置,以便任何客户端都可以访问任何资源(完全关闭访问控制)。那有可能吗。
谢谢
答案 0 :(得分:1)
access to vhost 'None' refused for user 'openstack'
某事正在尝试访问名为None
的虚拟主机,该虚拟主机不存在。默认虚拟主机名为/
。由于None
是Python中的关键字,我怀疑某个地方存在应用程序错误或配置错误。
不可能禁用访问控制,所以我建议创建一个众所周知的用户和密码来使用。
答案 1 :(得分:1)
这是由Kombu或oslo.messages中相对较新的更改引起的。以前,如果未提供virtual_host,它将默认为/
。这已不再是这种情况。
要使其正常工作,您的transport_url
至少需要至少有一个/
。
transport_url =兔子:// stackrabbit:secretrabbit@127.0.0.1:5672 /
例如,您可以参考devstack here作为参考。
此问题的实际上游修补程序可用here。
答案 2 :(得分:0)
您还可以将http请求发送到虚拟主机,以获取/设置用户权限。您必须将主机名指定为url的一部分,但是由于默认虚拟主机为'/',因此您必须将其替换为'%2F'即 http://
例如
curl -i -u guest:guest -h "content-type:application/json" -GET http://localhost:15672/api/permissions/%2F/guest
您可以转到 http://