J'utilise rabbitmq pour gérer les messages entre mes bases de données pour une application d'entreprise sur laquelle je travaille. Dans le cadre de ce processus, j'essaie d'aider à automatiser la configuration des serveurs (par exemple, en le scriptant). Dans ce processus, j'ai essayé d'utiliser rabbitmqadmin
pour déclarer des échanges à partir de la commande Invite. J'ai 2 serveurs différents exécutant CentOS 5.x
et CentOS 6.x
et les deux ont le même problème.
Jusqu'à présent, j'ai déclaré un utilisateur administrateur et défini son mot de passe, puis j'ai défini sa balise comme étant la balise administrateur, puis je me suis assuré qu'il dispose des autorisations nécessaires pour les hôtes virtuels. Après cela, j’essaie de déclarer l’échange, avec l’utilisateur et le mot de passe spécifiés.
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
Pour la boîte CentOS 5.x, je dois utiliser python26 rabbitmqadmin
au lieu de rabbitmqadmin
, mais obtenir le même résultat.
La dernière commande a pour résultat:
*** Access refused: /api/exchanges/vhostFoo/exchangeNew
Rabbitmq 3.3.5 fonctionne avec mes deux boîtiers CentOS 5.x et Cent 6.x. Avez-vous des idées sur ce qui me manque ou des idées sur la façon d’obtenir plus d’informations sur ce qui ne va pas (fichier journal des erreurs ou moyen d’obtenir une sortie plus détaillée)?
J'ai compris mon problème et je voulais poster la réponse au cas où quelqu'un d'autre rencontrerait le même problème. J'ai vérifié mon/var/log/rabbitmq/et le dernier bit a montré que l'accès à mon vhostFoo a été refusé pour l'utilisateur 'invité'. Sur cette base, cela m'a fait penser que ma commande de paramètres était incorrecte, ce qui semble être le cas. J'ai utilisé ce qui suit et cela a bien fonctionné:
rabbitmqadmin declare exchange --vhost=vhostFoo name=exchangeNew type=direct -u administrator -p password
Vous pouvez ajouter l'utilisateur disposant de droits d'administrateur localement sur votre système. Tapez http: // localhost: 15672/#/ dans votre navigateur. Dans cet onglet Admin, vous pouvez créer un utilisateur avec des droits d'administrateur.