Подготовка среды функционирования
Установка и настройка брокера сообщений RabbitMQ
Установка брокера сообщений RabbitMQ
| Если узел с уже установленным RabbitMQ будет переименован, то брокер сообщений перестанет принимать подключения. Для исправления ситуации необходимо удалить RabbitMQ, затем выполнить его переустановку. |
|
В Termidesk версии 6.1 в экспериментальном режиме поддерживается установка «Брокера сообщений TermideskMQ»:
|
Для установки RabbitMQ следует перейти в интерфейс командной строки через программу «Терминал Fly» и выполнить:
sudo apt install -y rabbitmq-server
Где:
-y - ключ для пропуска подтверждения установки.
Настройка брокера сообщений RabbitMQ
Для настройки RabbitMQ следует:
-
перейти в интерфейс командной строки через программу «Терминал Fly» и убедиться в наличии каталога
/etc/rabbitmq:
ls /etc/ | grep rabbitmq
-
если каталог отсутствует, необходимо создать его:
sudo mkdir -p /etc/rabbitmq
где:
-p - ключ для автоматического создания директорий, указанных внутри пути;
-
перейти в каталог
/etc/rabbitmq:
cd /etc/rabbitmq
-
создать пустые файлы
rabbitmq.conf(основной файл конфигурации RabbitMQ) иdefinitions.json(файл определения данных для подключения):
sudo touch rabbitmq.conf
sudo touch definitions.json
Файл definitions.json можно скопировать из iso-образа Termidesk. Если файл отсутствует, можно скопировать его из Интернет-репозитория: https://repos.termidesk.ru/Addons/Scripts/definitions.json.
|
-
поменять владельца (
rabbitmq) и идентификатор группы (rabbitmq) для созданных файлов:
sudo chown rabbitmq:rabbitmq definitions.json rabbitmq.conf
-
отредактировать файл
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
tcp_listen_options.keepalive = true
|
Если необходимо, чтобы RabbitMQ работал через TLS-соединение, то файл
Предполагается, что файлы корневого сертификата ( |
-
отредактировать файл
definitions.json, задав пользователейtermideskиadmin, приведя его к виду (в примере используются следующие пары логин-пароль:admin:admin,termidesk:ksedimret):
{
"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": []
}
|
В файле Имя пользователя и пароль должны задаваться в соответствии с внутренними стандартами организации по применению парольной защиты. Для задания пароля разрешено использовать только латинские буквы A-Z, a-z, цифры 0-9 и символы !$%^&_-=+~`.,()*{}[]\|.. |
-
выполнить команду инициализации RabbitMQ:
sudo rabbitmq-plugins enable rabbitmq_management
-
перезапустить службу
rabbitmq-server:
sudo systemctl restart rabbitmq-server
-
выполнить настройку поддержки TCP в ОС:
-
отредактировать файл
/etc/sysctl.conf:net.ipv4.tcp_keepalive_time = 30 net.ipv4.tcp_keepalive_intvl = 10 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_retries2 = 5 -
применить изменения
sysctl:
-
sudo sysctl --system
Чтобы получить преобразованное значение пароля, нужно воспользоваться исполняемым файлом rabbitmq_password2hash.sh, расположенным в подключенном репозитории Termidesk по пути
/var/repos/Addons/Scripts/. Для этого:
-
перейти в каталог
/var/repos/Addons/Scripts/:
cd /var/repos/Addons/Scripts/
-
задать файлу
rabbitmq_password2hash.shфлаг для запуска:
sudo chmod +x rabbitmq_password2hash.sh
где:
+x - ключ установки разрешения на запуск файла для всех пользователей;
-
выполнить исполняемый файл:
sudo ./rabbitmq_password2hash.sh
При выполнении исполняемого файла будет предложено ввести пароль и повторить его. Преобразованное значение введенного пароля отображается в интерфейсе командной строки.
Полученное значение нужно внести в файл /etc/rabbitmq/definitions.json (секция password_hash).
Если конфигурационный файл /etc/rabbitmq/definitions.json уже существует, но требуется изменить в нем значение преобразованного пароля, нужно:
-
выполнить преобразование и добавление пароля в файл
/etc/rabbitmq/definitions.json:
sudo ./rabbitmq_password2hash.sh -w -u <user> -p <пароль>
где:
-w - ключ для сохранения изменений в файл /etc/rabbitmq/definitions.json;
-u - пользователь RabbitMQ. В стандартной установке можно указывать admin;
-p - пароль;
-
перезапустить службу
rabbitmq-server:
sudo systemctl restart rabbitmq-server
Установка и настройка СУБД PostgreSQL
Установка СУБД PostgreSQL
Для установки СУБД PostgreSQL необходимо:
-
отредактировать файл
/etc/apt/sources.list, оставив в качестве источников получения пакетов сетевые репозитории. Пример файла/etc/apt/sources.listдля ОС Astra Linux Special Edition 1.8:
|
Приведен только пример файла! Он должен быть скорректирован, исходя из используемой и поддерживаемой версии ОС. Подробную информацию о сетевых репозиториях ОС Astra Linux Special Edition можно получить в справочном центре Astra Linux для ОС Astra Linux Special Edition 1.8: https://wiki.astralinux.ru/pages/viewpage.action?pageId=302043111. Если в файле |
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free
-
перейти в интерфейс командной строки и обновить списков пакетов:
sudo apt update
-
установить СУБД PostgreSQL:
| При установке на ОС Astra Linux Specail Edition 1.8 следует выбирать СУБД PostgreSQL версии 15 (входит в состав ОС). |
sudo apt install -y postgresql
где:
-y - ключ для пропуска подтверждения установки.
Настройка СУБД PostgreSQL
Перед установкой Termidesk нужно выполнить настройку базы данных (БД).
|
При работе с СУБД следует учитывать ее ограничения: суммарное количество подключений к СУБД должно быть не более 75% от максимально разрешенного количества подключений. Для СУБД PostgreSQL по умолчанию максимальное количество подключений - 100. Для оценки количества подключений к СУБД можно воспользоваться формулой: (количество порталов «Универсального диспетчера» x количество ядер процессоров x 3) + (количество узлов с запущенными службами |
Для настройки БД следует перейти в интерфейс командной строки и выполнить:
-
переключиться на пользователя
postgres:
sudo su postgres
-
запустить терминальный клиент СУБД PostgreSQL:
psql
|
Если после выполнения команды отображается ошибка «could not change directory to "/home/": Отказано в доступе» и не появляется приглашение командной строки Если приглашение
|
-
используя интерактивный интерфейс терминального клиента СУБД PostgreSQL, создать БД
termidesk(символ ; в конце строки при работе с интерактивным интерфейсом обязателен):
postgres=# CREATE DATABASE termidesk LC_COLLATE 'ru_RU.utf8' LC_CTYPE 'ru_RU.utf8' TEMPLATE template0;
где:
LC_COLLATE - порядок сортировки для использования в БД, влияет на порядок сортировки, применяемый к строкам. Значение ru_RU.utf8 указывает на использование русской локализации;
LC_CTYPE - классификация символов для использования в БД, влияет на категоризацию символов;
TEMPLATE - имя шаблона, из которого создается БД. Шаблон template0 используется для системной БД самой СУБД PostgreSQL.
-
создать пользователя
termideskdbс паролемksedimretдля дальнейшего подключения к БД:
postgres=# CREATE USER termideskdb WITH PASSWORD 'ksedimret';
| В приведенной команде имя пользователя и пароль используются в качестве примера. Имя пользователя и пароль должны задаваться в соответствии с внутренними стандартами организации по применению парольной защиты. Для задания пароля разрешено использовать только латинские буквы A-Z, a-z, цифры 0-9 и символы $!@%^&#_-=+~`;:.,?()*{}[]\|/. |
-
назначить права по использованию БД
termideskсозданному пользователюtermideskdb:
postgres=# GRANT ALL PRIVILEGES ON DATABASE termidesk TO termideskdb;
-
в случае, если используется СУБД PostgreSQL из состава ОС Astra Linux Special Edition 1.8, то сделать пользователя
termideskdbвладельцем БДtermidesk, тем самым предоставив ему все возможные права:
postgres=# ALTER DATABASE termidesk OWNER TO termideskdb;
-
выйти из интерактивного интерфейса терминального клиента СУБД PostgreSQL:
postgres=# \q
-
выйти из сеанса пользователя
postgres:
exit
-
отредактировать файл
/etc/parsec/mswitch.conf, установив параметрzero_if_notfoundв значениеyes, точно соблюдая отступы и пробелы:
# Return zero data instead of ENOENT/ENODATA in the absence of record
zero_if_notfound: yes
-
создать системного пользователя
termideskdb(имя должно совпадать с именем пользователя в БД):
sudo useradd -M termideskdb -s /usr/sbin/nologin -d /home/termideskdb
-
для пользователя БД назначить классификационную метку (в примере используется
termideskdb, в более ранних версиях использовалось имя пользователяtermidesk):
sudo pdpl-user -i 0 termideskdb
-
предоставить пользователю
termideskdbправа на чтение файла, содержащего классификационную метку:
sudo setfacl -m u:postgres:r /etc/parsec/macdb/$(id -u termideskdb)
| В случае последующего обновления СУБД PostgreSQL может понадобиться пересоздать БД. В этом случае следует предусмотреть экспорт БД перед обновлением СУБД PostgreSQL. |
Настройка СУБД Tantor
Помимо поддержки PostgreSQL Termidesk может работать с другими СУБД, такими как Tantor, основанным на PostgreSQL. Установка СУБД должна быть выполнена согласно документации на нее.
После установки нужно последовательно выполнить шаги для настройки БД:
-
переключиться на пользователя
postgres:
sudo su postgres
-
выполнить инициализацию БД:
/opt/tantor/db/<версия_Tantor>/bin/initdb -D /var/lib/postgresql/<каталог_Tantor>/data/
-
запустить терминальный клиент СУБД:
./psql
-
используя интерактивный интерфейс терминального клиента СУБД, создать БД
termidesk(символ «;» в конце строки при работе с интерактивным интерфейсом обязателен):
postgres=# CREATE DATABASE termidesk LC_COLLATE 'ru_RU.utf8' LC_CTYPE 'ru_RU.utf8' TEMPLATE template0;
-
создать пользователя
termideskс паролемksedimretдля дальнейшего подключения к БД:
postgres=# CREATE USER termidesk WITH PASSWORD 'ksedimret';
| В приведенной команде имя пользователя и пароль используются в качестве примера. Имя пользователя и пароль должны задаваться в соответствии с внутренними стандартами организации по применению парольной защиты. Для задания пароля разрешено использовать только латинские буквы A-Z, a-z, цифры 0-9 и символы $!@%^&#_-=+~`;:.,?()*{}[]\|/. |
-
назначить все права по использованию БД
termideskсозданному пользователюtermidesk:
postgres=# GRANT ALL PRIVILEGES ON DATABASE termidesk TO termidesk;
-
назначить права на создание объектов для схемы
public:
postgres=# GRANT CREATE ON SCHEMA public TO termidesk;
-
выйти из интерактивного интерфейса терминального клиента СУБД:
postgres=# \q
-
выйти из сеанса пользователя
postgres:
exit
-
отредактировать файл
/etc/parsec/mswitch.conf, установив параметрzero_if_notfoundв значениеyes, точно соблюдая отступы и пробелы:
# Return zero data instead of ENOENT/ENODATA in the absence of record
zero_if_notfound: yes
|
При работе с СУБД следует учитывать ее ограничения: суммарное количество подключений к СУБД должно быть не более 75% от максимально разрешенного количества подключений. Для оценки количества подключений к СУБД можно воспользоваться формулой: (количество порталов «Универсального диспетчера» x количество ядер процессоров x 3) + (количество узлов с запущенными службами |