2014-10-01 5 views
15

Я использую rabbitmq для обработки сообщений между моими базами данных для корпоративного приложения, над которым я работаю. Как часть процесса, я пытаюсь помочь автоматизировать настройку серверов (например, скрипт). В этом процессе я попытался использовать rabbitmqadmin для объявления обменов из командной строки. У меня есть 2 разных сервера, работающих под управлением CentOS 5.x и CentOS 6.x, и оба имеют такую ​​же проблему.RabbitMQ Объявить Exchange из терминала - Доступ отказался:/api/exchange/

До сих пор я объявлял пользователя-администратора и задавал его пароль, после чего я установил его тег из тега администратора, а затем я гарантирую, что он имеет права доступа к 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 

Для 5.x коробки CentOS я должен использовать python26 rabbitmqadmin вместо просто rabbitmqadmin, но получить тот же результат.

Последние результаты команды в:

*** Access refused: /api/exchanges/vhostFoo/exchangeNew 

И мой CentOS 5.x и 6.x Cent коробки работают RabbitMQ 3.3.5. Любые мысли о том, что мне не хватает, или мысли о том, как я могу получить больше информации о том, что не так (например, файл журнала ошибок или способ получить более подробный вывод)?

ответ

18

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

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

По-видимому, rabbitmqadmin теперь требует имя пользователя и пароль для каждой команды, которую мы выбираем для исполнения ... и это хорошо! – kstratis

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^