2 Stimmen

Seller: Kann Remote-Worker mit neuem Benutzernamen nicht verbinden

Ich verbinde zum ersten Mal einen Remote-Mitarbeiter mit meinem Celery-Server (Django). Auf meinem Server habe ich einen neuen Benutzernamen und ein Passwort für einen Benutzer erstellt und die Berechtigungen festgelegt:

# rabbitmqctl add_user adcelery pwd
# rabbitmqctl set_permissions adcelery "^adcelery-.*" ".*" ".*"
# rabbitmqctl list_users
Listing users ...
guest   [administrator]
adcelery    []
...done.
# /etc/init.d/rabbitmq-server restart
# /etc/init.d/celeryd restart

Die URL meines Remote-Mitarbeiters:

BROKER_URL = "amqp://adcelery:pwd@mydomain.com/"

Beim Start meines Remote-Mitarbeiters erhalte ich folgenden Fehler. Wenn ich "guest:guest" als Login in der BROKER_URL oben einstelle, verbindet es sich perfekt. Ich bin sicher, dass mir ein oder zwei Schritte fehlen, hast du irgendwelche Vorschläge?

[2014-01-12 11:31:26,188: INFO/MainProcess] Connected to amqp://adcelery@awaaz.de:5672//
[2014-01-12 11:31:26,391: ERROR/MainProcess] Unrecoverable error: AccessRefused(403, u"ACCESS_REFUSED - access to exchange 'celeryev' in vhost '/' refused f
or user 'adcelery'", (40, 10), 'Exchange.declare')
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/__init__.py", line 206, in start
    self.blueprint.start(self)
  File "/usr/local/lib/python2.7/dist-packages/celery/bootsteps.py", line 123, in start
    step.start(parent)
  File "/usr/local/lib/python2.7/dist-packages/celery/bootsteps.py", line 373, in start
    return self.obj.start()
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer.py", line 270, in start
    blueprint.start(self)
  File "/usr/local/lib/python2.7/dist-packages/celery/bootsteps.py", line 123, in start
    step.start(parent)
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer.py", line 498, in start
    enabled=self.send_events, groups=self.groups,
  File "/usr/local/lib/python2.7/dist-packages/celery/events/__init__.py", line 150, in __init__
    self.enable()
  File "/usr/local/lib/python2.7/dist-packages/celery/events/__init__.py", line 169, in enable
    serializer=self.serializer)
  File "/usr/local/lib/python2.7/dist-packages/kombu/messaging.py", line 82, in __init__
    self.revive(self._channel)
  File "/usr/local/lib/python2.7/dist-packages/kombu/messaging.py", line 216, in revive
    self.declare()
  File "/usr/local/lib/python2.7/dist-packages/kombu/messaging.py", line 102, in declare
    self.exchange.declare()
  File "/usr/local/lib/python2.7/dist-packages/kombu/entity.py", line 166, in declare
    nowait=nowait, passive=passive,
  File "/usr/local/lib/python2.7/dist-packages/amqp/channel.py", line 612, in exchange_declare
    (40, 11),  # Channel.exchange_declare_ok
  File "/usr/local/lib/python2.7/dist-packages/amqp/abstract_channel.py", line 75, in wait
    return self.dispatch_method(method_sig, args, content)
  File "/usr/local/lib/python2.7/dist-packages/amqp/abstract_channel.py", line 93, in dispatch_method
   return amqp_method(self, args)
  File "/usr/local/lib/python2.7/dist-packages/amqp/channel.py", line 232, in _close
    reply_code, reply_text, (class_id, method_id), ChannelError,
AccessRefused: Exchange.declare: (403) ACCESS_REFUSED - access to exchange 'celeryev' in vhost '/' refused for user 'adcelery'

5voto

Neil Punkte 6644

Habe gerade die Antwort in der Dokumentation gefunden. Muss den Benutzer zum vhost hinzufügen:

rabbitmqctl set_permissions -p / adcelery ".*" ".*" ".*"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X