Как задать разрешение темы для пользователя на удаленном сервере с помощью инструментов командной строки rabbitmq

#rabbitmq #kubernetes-helm #bitnami #rabbitmqadmin

Вопрос:

есть ли способ создать разрешение на тему для пользователя с помощью инструмента cli rabbitmqadmin в удаленной системе?

Использование диаграммы управления Bitnami https://github.com/bitnami/charts/tree/master/bitnami/rabbitmq

Будет использовать его для написания сценариев, поэтому веб-интерфейс не является опцией, найденной есть метод для другого инструмента CLI. rabbitmqctl не может подключиться через rabbitmqctl к моему кластеру, даже у меня есть служба kubernetes Защита порта для порта 4369

Я уже создал разрешения пользователя хоста через rabbitmqadmin, поэтому сам инструмент командной строки rabbitmqadmin в целом работает

 rabbitmqadmin --help 
 

дает мне следующие методы

 Object Manipulation
===================

  declare exchange name=... type=... [auto_delete=... durable=... internal=... arguments=...]
  declare queue name=... [auto_delete=... durable=... arguments=... node=... queue_type=...]
  declare binding source=... destination=... [destination_type=... routing_key=... arguments=...]
  declare vhost name=... [tracing=...]
  declare user name=... password=... OR password_hash=... tags=... [hashing_algorithm=...]
  declare permission vhost=... user=... configure=... write=... read=...
  declare parameter component=... name=... value=...
  declare policy name=... pattern=... definition=... [priority=... apply-to=...]
  declare operator_policy name=... pattern=... definition=... [priority=... apply-to=...]
  declare vhost_limit vhost=... name=... value=...
 

Ответ №1:

Вы должны использовать команду rabbitmqctl

 rabbitmqctl set_topic_permissions -p my-vhost janeway amq.topic "^janeway-.*" "^janeway-.*"
 

Справочный документ : https://www.rabbitmq.com/rabbitmqctl.8.html#set_topic_permissions

если вы не можете подключиться с помощью rabbitmqctl, вы можете попробовать exec войти в модуль RabbitMQ вручную.

kubectl exec -it <Rabbitmq-1 or POD name> -- /bin/bash внутри него вы можете получить доступ к rabbitmqctl

Комментарии:

1. ТХ! «kubectl exec -it» — хорошая идея. Даже полезно для сценариев, таких как «kubectl exec-it <Rabbitmq-1 или имя модуля> — rabbitmqctl set_topic_permissions …..» будет работать для начала