Распределенная установка программного комплекса

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

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

Описание применимо к ферме Termidesk.

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

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

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

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

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

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

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

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

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

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

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

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

КомпонентFQDNПодпись на схеме
«Универсальный диспетчер» №1 с ролью «Портал универсальный» disp1.termidesk.local Универсальный диспетчер 1
«Универсальный диспетчер» №2 с ролью «Портал универсальный» disp2.termidesk.local Универсальный диспетчер 2
«Шлюз» №1 gw1.termidesk.local Шлюз 1
«Шлюз» №2 gw2.termidesk.local Шлюз 2
«Менеджер рабочих мест» №1 (master) tsk1.termidesk.local

Менеджер рабочих мест 1

«Менеджер рабочих мест (очереди)» №1 (master)
«Менеджер рабочих мест» №2 (slave) tsk2.termidesk.local

Менеджер рабочих мест 2

«Менеджер рабочих мест (очереди)» №2 (slave)
Балансировщик нагрузки (nginx) nginx.termidesk.local Балансировщик
База данных db.termidesk.local Сервер PostgreSQL

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

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

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

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

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

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

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

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

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

Одновременно служба «Менеджера рабочих мест» termidesk-taskman должна быть запущена только на одном из узлов!

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

Установка и настройка СУБД 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

Установка первого узла с «Универсальным диспетчером»

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

После установки передать каталог /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.

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

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

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

После завершения установки нужно изменить настройки запуска «Шлюзов» termidesk-gateway:

  • привести файл /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

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

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

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

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

1) перемещается скопированный ранее каталог termidesk-vdi в каталог /etc/opt/:

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

2) редактируется файл /etc/opt/termidesk-vdi/termidesk.conf, параметру NODE_ROLES присваивается значение «TASKMAN, CELERYMAN»;

3) устанавливается пакет termidesk-vdi:

sudo apt -y install termidesk-vdi
BASH

где:

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

В результате установки пакета termidesk-vdi на узле будут запущены:

  • службы termidesk-celery-beat, termidesk-celery-worker компонента «Менеджер рабочих мест», установленного как «Менеджер рабочих мест (очереди)»;
  • служба termidesk-taskman компонента «Менеджер рабочих мест».

После окончания установки нужно остановить (systemctl stop) и исключить (systemctl disable) службу termidesk-taskman из автоматического запуска:

sudo systemctl stop termidesk-taskman && sudo systemctl disable termidesk-taskman
BASH

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

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

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

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

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

sudo apt install -y nginx
BASH

где:

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

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

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

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