Смена имени хоста / ноды RabbitMQ

Проблема: при начальной установке *nix операционной системе присваивается дефолтное имя localhost.localnet. Но при этом ноды с rabbitmq должны иметь уникальные имена для объединения в один кластер.

Решение.

Имя ноды кластера имеет вид rabbit1@nodename, где
nodename – имя хоста
rabbit1 – имя самого экземпляра КabbitMQ (если будет несколько кроликов на одной машине, то можно сделать уникальные имена вида rabbit1@nodename, rabbit2@nodename,…)

Смена имени хоста.

Смена имени самого хоста – либо ручное редактирование файла /etc/hostname и затем перегрузка.

Либо:

$ hostnamectl set-hostname HWSERVER 
$ hostname 
HWSERVER

далее – перезапуск самого кролика:

$ sudo systemctl restart rabbitmq-server

При перезапуске RabbitMQ перезаписывает файлы в /var/lib/rabbitmq:

Было (до смены имени):

[root@WRD1 _mnesia]# ls -al
итого 16
drwxr-x---. 6 rabbitmq rabbitmq 193 мар 14 11:04 .
drwxr-x---. 5 rabbitmq rabbitmq 130 мар 14 11:11 ..
drwxr-x---. 5 rabbitmq rabbitmq 4096 мар 14 10:46 rabbit@localhost
-rw-r-----. 1 rabbitmq rabbitmq 310 мар 12 08:29 rabbit@localhost-feature_flags
drwxr-x---. 2 rabbitmq rabbitmq 6 мар 14 10:46 rabbit@localhost-plugins-expand

Стало:

[root@WRD1 _mnesia]# ls -al
итого 16
drwxr-x---. 6 rabbitmq rabbitmq  193 мар 14 11:04 .
drwxr-x---. 5 rabbitmq rabbitmq  130 мар 14 11:11 ..
drwxr-x---. 5 rabbitmq rabbitmq 4096 мар 14 10:46 rabbit@localhost
-rw-r-----. 1 rabbitmq rabbitmq  310 мар 12 08:29 rabbit@localhost-feature_flags
drwxr-x---. 2 rabbitmq rabbitmq    6 мар 14 10:46 rabbit@localhost-plugins-expand
drwxr-x---. 5 rabbitmq rabbitmq 4096 мар 14 11:00 rabbit@HWSERVER
-rw-r-----. 1 rabbitmq rabbitmq  358 мар 14 08:31 rabbit@HWSERVER-feature_flags
drwxr-x---. 2 rabbitmq rabbitmq    6 мар 14 11:00 rabbit@HWSERVER1-plugins-expand

ВАЖНО: после перезапуска RаbbitMQ забывает все настройки. Вы получаете абсолютно чистого зайца. Авторизоваться через веб-интерфейс также НЕ получится со старыми данными.

Причем, если у вас был уже открыт веб-интерфейс, то он тут же вывалится в состояние “Not Authorized”

Создать нового пользователя:

rabbitmqctl add_user username password

Добавить таг администратора

rabbitmqctl set_user_tags username administrator

Дать полные права:

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

После этого получится авторизоваться с вновь заданными username / password.

Доп. материалы про миграцию RabbitMQ здесь: “The Best Way To Migrate a RabbitMQ Server

Share
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x