我使用rabbitmq来处理我工作的企业应用程序的数据库之间的消息。作为整个过程的一部分,我试图帮助自动化服务器的设置(例如脚本)。在此过程中,我尝试使用rabbitmqadmin
从命令提示符声明交换。我有两个不同的服务器正在运行CentOS 5.x
和CentOS 6.x
,两者都有同样的问题。
到目前为止,我宣布了一个管理员用户并设置了密码,然后我将其标记设置为管理员标记,然后我确保它具有对vhost的权限。之后,我尝试声明交换,指定用户和密码,然后失败。
rabbitmqctl add_user administrator password
rabbitmqctl set_user_tags administrator administrator
rabbitmqctl set_permissions -p / administrator ".*" ".*" ".*"
rabbitmqctl add_vhost vhostFoo
rabbitmqctl set_permissions -p vhostFoo administrator ".*" ".*" ".*"
rabbitmqadmin -u administrator -p password declare exchange --vhost=vhostFoo name=exchangeNew type=direct
对于CentOS 5.x框,我必须使用python26 rabbitmqadmin
而不是rabbitmqadmin
,但得到相同的结果。
最后一个命令导致:
*** Access refused: /api/exchanges/vhostFoo/exchangeNew
我的CentOS 5.x和Cent 6.x盒子都在运行rabbitmq 3.3.5。关于我缺少什么或者如何获得有关错误的更多信息的想法(例如错误日志文件或获得更详细输出的方式)的任何想法?
答案 0 :(得分:26)
我想出了我的问题,想要发布答案以防其他人遇到同样的问题。我检查了我的/ var / log / rabbitmq /,最后一点显示用户'guest'拒绝访问我的vhostFoo。基于此,它让我认为我的params命令是不正确的,它看起来就是这样。我使用了以下内容并且工作正常:
rabbitmqadmin declare exchange --vhost=vhostFoo name=exchangeNew type=direct -u administrator -p password
答案 1 :(得分:0)
您可以在系统上本地添加具有管理员权限的用户。 在浏览器中输入http://localhost:15672/#/。在该“管理”选项卡中,您可以创建具有管理员权限的用户。
答案 2 :(得分:0)
将管理员用户的用户和密码(-u 管理员 -p 密码)添加到对我有用的命令中。