Установка брокера сообщений RabbitMQ-server

Для установки RabbitMQ-server нужно перейти в интерфейс командной строки через программу «Терминал Fly» и выполнить команду:

:~$ sudo apt install -y rabbitmq-server
BASH

где:

-y - ключ для пропуска подтверждения установки.

Настройка брокера сообщений RabbitMQ-server

Для настройки RabbitMQ-server следует:

  • перейти в интерфейс командной строки через программу «Терминал Fly» и убедиться в наличии каталога /etc/rabbitmq:
:~$ ls /etc/
BASH
  • если каталог отсутствует, необходимо создать его:
:~$ sudo mkdir -p /etc/rabbitmq
BASH

где:

- p - ключ для автоматического создания директорий, указанных внутри пути;

  • перейти в каталог /etc/rabbitmq:
:~$ cd /etc/rabbitmq
BASH
  • создать пустые файлы rabbitmq.conf (основной файл конфигурации RabbitMQ-server) и definitions.json (файл определения данных для подключения):
:~$ sudo touch rabbitmq.conf
:~$ sudo touch definitions.json
BASH
  • поменять владельца (rabbitmq) и идентификатор группы  (rabbitmq)  для созданных файлов:
:~$ sudo chown rabbitmq:rabbitmq definitions.json rabbitmq.conf
BASH
  • отредактировать файл rabbitmq.conf, приведя его к виду:
# ======================================= Management section =======================================
## Preload schema definitions from the following JSON file. 
## Related doc guide: https://rabbitmq.com/management.html#load-definitions.
##
# management.load_definitions = /path/to/exported/definitions.json
management.load_definitions = /etc/rabbitmq/definitions.json
BASH
  • отредактировать файл definitions.json, задав пользователей termidesk и admin, приведя его к виду:
{
	"rabbit_version": "3.7.8",
	"users": [
		{
			"name": "termidesk",
			"password_hash": "pnXiDJtUdk7ZceL9iOqx44PeDgRa+X1+eIq+7wf/PTONLb1h",
			"hashing_algorithm": "rabbit_password_hashing_sha256",
			"tags": ""
		},
		{
			"name": "admin",
			"password_hash": "FXQ9WFNSrsGwRki9BT2dCITnsDwYu2lsy7BEN7+UncsPzCDZ",
			"hashing_algorithm": "rabbit_password_hashing_sha256",
			"tags": "administrator"
		}
	],
	"vhosts": [
		{
			"name": "/"
		},
		{
			"name": "termidesk"
		}
	],
	"permissions": [
		{
			"user": "termidesk",
			"vhost": "termidesk",
			"configure": ".*",
			"write": ".*",
			"read": ".*"
		},
		{
			"user": "admin",
			"vhost": "termidesk",
			"configure": ".*",
			"write": ".*",
			"read": ".*"
		}
	],
	"topic_permissions": [
		{
			"user": "termidesk",
			"vhost": "termidesk",
			"exchange": "",
			"write": ".*",
			"read": ".*"
		}
	],
	"parameters": [],
	"global_parameters": [
		{
			"name": "cluster_name",
			"value": "rabbit@rabbitmq"
		}
	],
	"policies": [],
	"queues": [],
	"exchanges": [],
	"bindings": []
}
BASH

В файле /etc/rabbitmq/definitions.json пароли  указываются в виде преобразованного значения. Подробно о том, как преобразовать пароль, приведено далее.

В примере используются следующие пары логин-пароль: admin:admin, termidesk:ksedimret.

Имя пользователя и пароль должны задаваться в соответствии с внутренними стандартами организации по применению парольной защиты.

  • выполнить команду инициализации RabbitMQ-server:
:~$ sudo rabbitmq-plugins enable rabbitmq_management
BASH
  • перезапустить RabbitMQ-server:
:~$ sudo systemctl restart rabbitmq-server
BASH

Чтобы получить преобразованное значение пароля нужно воспользоваться исполняемым файлом rabbitmq_password2hash.sh, расположенным в подключенном репозитории Termidesk (см. Получение пакетов установки в ОС Astra Linux Special Edition) по пути /var/repos/Addons/Scripts/:

  • перейти в каталог /var/repos/Addons/Scripts/:
:~$ cd /var/repos/Addons/Scripts/
BASH
  • задать файлу rabbitmq_password2hash.sh флаг для запуска:
:~$ sudo chmod +x rabbitmq_password2hash.sh
BASH

где:

+x - ключ установки разрешения на запуск файла для всех пользователей;

  • выполнить исполняемый файл:
:~$ sudo ./rabbitmq/rabbitmq_password2hash.sh
BASH

При выполнении исполняемого файла будет предложено ввести пароль и повторить его. Преобразованное значение введенного пароля будет отображено в интерфейсе командной строки.

Необходимо внести полученное значение в файл /etc/rabbitmq/definitions.json (секция password_hash).