26

私が取り組んでいるエンタープライズ アプリケーションのデータベース間のメッセージを処理するために rabbitmq を使用しています。プロセスの一環として、サーバーのセットアップを自動化しようとしています (スクリプト化など)。rabbitmqadminこのプロセスでは、コマンド プロンプトから交換を宣言するために使用しようとしました。2 つの異なるサーバーを実行CentOS 5.xしていますCentOS 6.xが、どちらも同じ問題を抱えています。

これまでのところ、管理者ユーザーを宣言してそのパスワードを設定し、そのタグを管理者タグに設定してから、仮想ホストへのアクセス許可があることを確認しました。その後、ユーザーとパスワードを指定して交換を宣言しようとしましたが、失敗しました。

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 が実行されています。私が見逃しているものについての考え、または何が間違っているかについての詳細情報を取得する方法についての考え (エラー ログ ファイルやより詳細な出力を取得する方法など) はありますか?

4

3 に答える 3

41

私は自分の問題を理解し、他の誰かが同じ問題に遭遇した場合に備えて回答を投稿したいと考えました. /var/log/rabbitmq/ を確認したところ、最後の部分で、vhostFoo へのアクセスがユーザー 'guest' に対して拒否されたことが示されました。これに基づいて、paramsの順序が間違っていると思わせてくれました。私は以下を使用しましたが、うまくいきました:

rabbitmqadmin declare exchange --vhost=vhostFoo name=exchangeNew type=direct -u administrator -p password 
于 2014-10-01T16:17:35.307 に答える