2014-10-01 12 views
15

Sto usando rabbitmq per gestire i messaggi tra i miei database per un'applicazione aziendale su cui lavoro. Come parte del processo, sto cercando di aiutare ad automatizzare l'installazione dei server (ad esempio, lo script). In questo processo, ho provato a utilizzare rabbitmqadmin per dichiarare gli scambi dal prompt dei comandi. Ho 2 server diversi che eseguono CentOS 5.x e CentOS 6.x ed entrambi hanno lo stesso problema.RabbitMQ Dichiara scambio dal terminale - Accesso rifiutato:/api/exchange/

Finora ho dichiarato un utente amministratore e ho impostato la sua password, quindi ho impostato il tag come tag dell'amministratore, quindi mi assicuro che disponga delle autorizzazioni per i vhost. Dopo di ciò, provo a dichiarare lo scambio, con l'utente e la password specificati e fallisce.

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 

Per la casella 5.x CentOS devo usare python26 rabbitmqadmin invece di rabbitmqadmin, ma ottenere lo stesso risultato.

Gli ultimi risultati di comando in:

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

Sia mia 5.x CentOS e Cent scatole 6.x sono in esecuzione RabbitMQ 3.3.5. Qualche idea su cosa mi manca o pensieri su come posso ottenere maggiori informazioni su cosa non va (ad esempio file di registro degli errori o modo per ottenere un output più dettagliato)?

risposta

18

Ho scoperto il mio problema e ho voluto postare la risposta nel caso in cui qualcun altro avesse riscontrato lo stesso problema. Ho controllato il mio/var/log/rabbitmq/e l'ultimo bit mostrato accesso al mio vhostFoo è stato rifiutato per l'utente 'guest'. Sulla base di questo, mi ha fatto pensare che il mio ordine di parametri non fosse corretto, il che sembra essere il caso. Ho utilizzato quanto segue e ha funzionato correttamente:

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

Apparentemente rabbitmqadmin ora ha bisogno di nome utente e password impostati per qualsiasi comando scegliamo di eseguire ... ed è una buona cosa! – kstratis

0

È possibile aggiungere l'utente con diritti di amministratore in locale sul sistema. Digita http://localhost:15672/#/ nel tuo browser. Nella scheda Amministratore, puoi creare un utente con diritti di amministratore.

Problemi correlati