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 вы можете создать пользователя с правами администратора.