Распределенная установка «Агрегатора»Link to Распределенная установка «Агрегатора»

Основные принципы распределенной установкиLink to Основные принципы распределенной установки

В Termidesk предусмотрена распределенная установка компонентов на отдельные серверы или ВМ.

Описание применимо к ферме «Агрегатора».

Установка компонентов Termidesk выполняется в среде функционирования ОС Astra Linux Special Edition.

В распределенном варианте устанавливаются:

  • «Агрегатор» (служба termidesk-vdi);
  • «Шлюз» (при необходимости, служба termidesk-gateway);
  • «Менеджер рабочих мест» (службы termidesk-celery-beat, termidesk-celery-worker).

Перечень условий для распределенной установки:

  • брокер сообщений RabbitMQ устанавливается на одном узле с СУБД (в общем случае этот компонент может устанавливаться на отдельный узел, но в рамках настоящей процедуры данный вариант не рассматривается);

При использовании внешней по отношению к Termidesk СУБД, следует установить брокер сообщений RabbitMQ на узел «Менеджера рабочих мест» или на отдельный узел.

  • на всех узлах, предназначенных для установки компонентов, настроены статические IP-адреса;
  • на всех узлах настроена синхронизация времени от единого источника.

Упрощенная общая схема при распределенной установке Termidesk приведена на рисунке.

Схема распределенной установки

Перечень обозначенных на схеме компонентов приведен в таблице.

Перечень компонентов

Компонент
FQDN
Подпись на схеме

«Агрегатор» №1 с ролью «Агрегатор универсальный»

aggr1termidesk.local «Агрегатор 1»

«Агрегатор» №2 с ролью «Агрегатор универсальный»

aggr2.termidesk.local «Агрегатор 2»
«Шлюз» №1 gw1.termidesk.local «Шлюз 1»
«Шлюз» №2 gw2.termidesk.local «Шлюз 2»
«Менеджер рабочих мест» №1 tsk1.termidesk.local
«Менеджер рабочих мест 1»
«Менеджер рабочих мест» №2 tsk2.termidesk.local
«Менеджер рабочих мест 2»
Балансировщик нагрузки (nginx) nginx.termidesk.local «Балансировщик»
База данных c брокером сообщений RabbitMQ db.termidesk.local «Сервер СУБД и RabbitMQ»

Распределенная установка проводится в следующей последовательности:

1) на одном узле устанавливаются СУБД и RabbitMQ. При установке следует учесть, что в БД должны отсутствовать записи (необходимо использовать чистую БД);

2) устанавливается первый (эталонный) узел с «Агрегатором». При установке необходимо выбрать роль «Агрегатор универсальный». Роль активируется при одновременном выборе ролей «Агрегатор администратора» и «Агрегатор пользователя» в диалоговом окне псевдографического интерфейса инсталлятора;

Настройки первого узла с «Агрегатором» будут использоваться как эталонные для других узлов.

Параметры конфигурации находятся в файле /etc/opt/termidesk-vdi/termidesk.conf.

Нужно скопировать каталог /etc/opt/termidesk-vdi вместе с его содержимым на другие узлы «Агрегатора» и «Менеджера рабочих мест».

3) устанавливаются остальные «Агрегаторы» с копированием файлов, указанных в п.2, с эталонного узла;

4) устанавливаются «Шлюзы», настраивается защищенное подключение к «Шлюзу», каталог /etc/termidesk/ копируется с первого узла «Шлюза» на другие узлы с этим компонентом;

5) устанавливаются «Менеджеры рабочих мест» с копированием файлов, указанных в п.2, с эталонного узла.

Заключительным этапом устанавливаются и настраиваются балансировщики нагрузки на базе ОС Astra Linux Special Edition и nginx.

Установка и настройка СУБД PostgreSQLLink to Установка и настройка СУБД PostgreSQL

Процесс установки брокера сообщений RabbitMQ не отличается от процесса, описанного в разделе Подготовка среды функционирования. Установка и настройка СУБД PostgreSQL осуществляется согласно выбранной версии.

Для завершения настройки нужно:

  • отредактировать файл /etc/rabbitmq/rabbitmq-env.conf, приведя его к виду:
# Defaults to rabbit. This can be useful if you want to run more than one node
# per machine - RABBITMQ_NODENAME should be unique per erlang-node-and-machine
# combination. See the clustering on a single machine guide for details:
# http://www.rabbitmq.com/clustering.html#single-machine
#NODENAME=rabbit

# By default RabbitMQ will bind to all interfaces, on IPv4 and IPv6 if
# available. Set this if you only want to bind to one network interface or#
# address family.
NODE_IP_ADDRESS=0.0.0.0
# Defaults to 5672.
NODE_PORT=5672
BASH
  • сохранить файл и перезапустить службу rabbitmq-server:
sudo systemctl restart rabbitmq-server
BASH

Установка первого узла с «Агрегатором»Link to Установка первого узла с «Агрегатором»

Процесс установки первого узла с «Агрегатором» аналогичен комплексной установке, за исключением выбора только ролей «Агрегатор администратора» и «Агрегатор пользователя».

После установки передать каталог /etc/opt/termidesk-vdi на остальные узлы «Агрегатора» и «Менеджера рабочих мест»:

sudo scp -r /etc/opt/termidesk-vdi localuser@ipaddr_or_fqdn_host:/home/user/
BASH

где:

-r - ключ для рекурсивной (со вложенными каталогами) передачи;

localuser - имя пользователя целевого узла;

ipaddr_or_fqdn_host - IP-адрес или FQDN целевого узла;

/home/user - путь, куда будет скопирован каталог.

Перед началом установки остальных узлов «Универсальных диспетчеров» необходимо переместить скопированный ранее каталог termidesk-vdi в каталог /etc/opt/:

sudo mv /home/user/termidesk-vdi /etc/opt/
BASH

Установить второй узел с «Агрегатором» по аналогии с первым, не меняя параметры в диалогах подключения к СУБД и заполнения информации о подключении к RabbitMQ.

Установка «Шлюзов»Link to Установка «Шлюзов»

Установка «Шлюзов» выполняется из пакета termidesk-gateway.

Для установки «Шлюза» следует обратиться к подразделу Установка Шлюза документа СЛЕТ.10001-01 90 05 «Руководство администратора. Настройка компонента «Шлюз».

После завершения установки нужно:

  • настроить защищенное подключение к «Шлюзу» согласно подразделу Настройка защищенного подключения к Шлюзу документа СЛЕТ.10001-01 90 05 «Руководство администратора. Настройка компонента «Шлюз»;
  • привести файл /etc/termidesk/gateway.yaml к виду согласно подразделу Параметры конфигурирования компонента документа СЛЕТ.10001-01 90 05 «Руководство администратора. Настройка компонента «Шлюз». Задать актуальные значения IP-адресов (или FQDN) параметрам:
    • url: ${urlCheckToken} - для обслуживания API-запросов по валидации подключений, запрашиваемых «Универсальным диспетчером» через «Шлюз»;
    • url: ${coordinatorUrl} - для подключения к RabbitMQ;
  • сохранить файл, а затем перезапустить службу:
sudo systemctl restart termidesk-gateway
BASH

После настройки нужно передать каталог /etc/termidesk/ с первого узла «Шлюза» на другие узлы с этим компонентом:

sudo scp -r /etc/termidesk localuser@ipaddr_or_fqdn_host:/home/user/
BASH

где:

-r - ключ для рекурсивной (со вложенными каталогами) передачи;

localuser - имя пользователя целевого узла;

ipaddr_or_fqdn_host - IP-адрес или FQDN целевого узла;

/home/user - путь, куда будет скопирован каталог.

Перед началом установки остальных узлов «Шлюзов» необходимо:

  • переместить скопированный ранее каталог termidesk в каталог /etc/:
sudo mv /home/user/termidesk /etc/
BASH
  • назначить права по использованию ключа и сертификата пользователю termidesk-gateway:
sudo chown termidesk-gateway:termidesk-gateway /etc/termidesk/ssl-cert-snakeoil.*
BASH
  • предоставить права на чтение ключа и сертификата:
sudo chmod 640 /etc/termidesk/ssl-cert-snakeoil.key
sudo chmod 644 /etc/termidesk/ssl-cert-snakeoil.pem
BASH
  • перезапустить службу:
sudo systemctl restart termidesk-gateway
BASH

Установка второго узла «Шлюза» выполняется по аналогии с первым.

Установка «Менеджеров рабочих мест»Link to Установка «Менеджеров рабочих мест»

Установка «Менеджеров рабочих мест» производится на два узла, работающих в режиме network failover.

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

  • перемещается скопированный ранее каталог termidesk-vdi в каталог /etc/opt/:
sudo mv /home/user/termidesk-vdi /etc/opt/
BASH
  • редактируется файл /etc/opt/termidesk-vdi/termidesk.conf, параметру NODE_ROLES присваивается значение CELERYMAN;
  • устанавливается пакет termidesk-vdi:
sudo apt -y install termidesk-vdi
BASH

где:

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

В результате установки пакета termidesk-vdi на узле будут запущены службы termidesk-celery-beattermidesk-celery-worker.

Установка второго узла с «Менеджером рабочих мест» выполняется по аналогии с первым.

Установка балансировщиковLink to Установка балансировщиков

Балансировщики нагрузки необходимы для балансировки клиентских подключений к «Агрегаторам» и «Шлюзам», равномерного распределения нагрузки на них. Средой функционирования для балансировщиков нагрузки является ОС Astra Linux Special Edition.

Балансировщик nginx устанавливается командой:

sudo apt install -y nginx
BASH

где:

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

Действия после распределенной установкиLink to Действия после распределенной установки

Настройка балансировщика нагрузки приведена в подразделе  Настройка балансировщика для работы с самоподписанными сертификатами  документа СЛЕТ.10001-01 90 02 «Руководство администратора. Настройка программного комплекса».

После установки нужно задать ключ для подписи JWT-токена для взаимодействия с узлами фермы Termidesk. Ключ может быть задан через файл /etc/opt/termidesk-vdi/termidesk.conf (параметр AGGREGATOR_JWT_SSL_KEY) или через утилиту termidesk-config.

После установки параметры «Агрегатора» могут быть изменены через файл /etc/opt/termidesk-vdi/termidesk.conf (см. подраздел Параметры конфигурирования «Агрегатора») или через утилиту termidesk-config (см. подраздел Утилита termidesk-config).