RabbitMQ Объявить Exchange из терминала - Доступ отказался:/api/exchange/

Я использую rabbitmq для обработки сообщений между моими базами данных для корпоративного приложения, над которым я работаю. В рамках процесса я пытаюсь помочь автоматизировать настройку серверов (например, script). В этом процессе я попытался использовать rabbitmqadmin для объявления обменов из командной строки. У меня есть 2 разных сервера, работающих под управлением CentOS 5.x и CentOS 6.x, и оба имеют одну и ту же проблему.

Пока я объявил пользователя администратора и установил его пароль, я установил его тег из тега администратора, и я гарантирую, что он имеет разрешения для vhosts. После этого я пытаюсь объявить обмен, с указанным пользователем и паролем, и он терпит неудачу.

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. Любые мысли о том, что мне не хватает, или мысли о том, как я могу получить больше информации о том, что неправильно (например, файл журнала ошибок или способ получения более подробного вывода)?

Ответы

Ответ 1

Я понял свою проблему и хотел опубликовать ответ, если кто-то другой сталкивается с той же проблемой. Я проверил свой /var/log/rabbitmq/, и последний бит показал, что доступ к моему vhostFoo был отклонен для пользователя "гость". Исходя из этого, это заставило меня подумать, что мой порядок параметров был неправильным, что похоже на это. Я использовал следующее, и он работал нормально:

rabbitmqadmin declare exchange --vhost=vhostFoo name=exchangeNew type=direct -u administrator -p password 

Ответ 2

Вы можете добавить пользователя с правами администратора локально в свою систему. Введите http://localhost:15672/#/ в своем браузере. На этой вкладке Admin вы можете создать пользователя с правами администратора.