Zjistil jsem, že připojení zůstalo chybou peer, a předpokládal jsem, že RabbitMQ neposlouchá na portu nebo jej blokuje brána firewall. Nebylo tomu tak.
Spuštění RabbitMQ na Ubuntu 16.04.2 LTS, verze nainstalovaná apt:3.5.7-1ubuntu0.16.04.1
Výstup 'netstat -a' pro králičí port 5672 vypadal takto:
$ netstat -a|grep -i amqp
tcp6 0 0 [::]:amqp [::]:* LISTEN
Králík však ve skutečnosti naslouchal jak na adrese IPv4, tak na adrese IPv6. Ověřil jsem to pomocí netcatu.
Chcete-li kontaktovat Králíka z jiného počítače, musíte si nastavit uživatelský účet pomocí něčeho jako jsou následující příkazy:
sudo rabbitmqctl add_user celery celerypassword
sudo rabbitmqctl add_vhost celery_vhost
sudo rabbitmqctl set_user_tags celery celerytag
sudo rabbitmqctl set_permissions -p celery_vhost celery .* .* .*
Problém byla moje adresa URL. Moje vypadala takto:
BROKER_URL = 'amqp://celery:[email protected]//'
Za tímto předposledním lomítkem je název vhost. Výše jsem dal svému vhost jméno celery_vhost. Pro připojení jsem potřeboval změnit URL na:
BROKER_URL = 'amqp://celery:[email protected]/celery_vhost'
Zjistil jsem to při pohledu na protokoly králíka v /var/log/rabbitmq. Existuje soubor .log, který obsahoval následující chybu, když jsem měl špatnou adresu URL:
{handshake_error,opening,0,
{amqp_error,access_refused,
"access to vhost '/' refused for user 'celery'",
'connection.open'}}