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

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

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

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

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

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

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

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

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

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

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

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

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

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

КомпонентFQDNПодпись на схеме
Универсальный диспетчер Termidesk 1disp1.termidesk.localДиспетчер 1
Универсальный диспетчер Termidesk 2disp2.termidesk.localДиспетчер 2
Шлюз Termidesk 1gw1.termidesk.localШлюз 1
Шлюз Termidesk 2gw2.termidesk.localШлюз 2
Менеджер рабочих мест (master)tsk1.termidesk.localМенеджер рабочих мест 1
Менеджер рабочих мест (slave)tsk2.termidesk.localМенеджер рабочих мест 2
Балансировщик нагрузки (nginx)nginx.termidesk.localБалансировщик
База данныхdb.termidesk.localСервер PostgreSQL

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

1) устанавливается узел с компонентами СУБД и RabbitMQ-server (обе службы на одном узле);

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

Настройки первого узла с универсальным диспетчером Termidesk будут использоваться как эталонные для остальных узлов с компонентами Ternidesk (универсального диспетчера, шлюзов, менеджеров ВРМ).

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

Нужно скопировать каталог /etc/opt/termidesk-vdi вместе с его содержимым на все узлы, за исключением узлов с СУБД и балансировщиком.

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

4) устанавливаются узлы - шлюзы подключений Termidesk с копированием файлов, указанных в п.2, с эталонного узла. При установке шлюза Termidesk необходимо выбрать компонент «Gateway» в диалоговом окне псевдографического интерфейса инсталлятора;

5) устанавливаются узлы - менеджеры ВРМ с копированием файлов, указанных в п.2, с эталонного узла. При установке менеджера ВРМ Termidesk необходимо выбрать компонент «Task Manager» в диалоговом окне псевдографического интерфейса инсталлятора (одновременно служба менеджера ВРМ termidesk-taskman должна быть запущена только на одном из узлов!).

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

Установка и настройка СУБД Postgres-11

Процесс установки СУБД Postgres-11 и брокера сообщений RabbitMQ-server не отличается от процесса, описанного для комплексной установки Termidesk (см. подраздел Установка и настройка отделяемых компонентов на одном узле).

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

  • отредактировать файл 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

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

После установки передать каталог /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 необходимо переместить скопированный ранее каталог termidesk-vdi в каталог /etc/opt/:

:~$ sudo mv /home/user/termidesk-vdi /etc/opt/
BASH

Установить остальные узлы с универсальным диспетчером Termidesk по аналогии с первым, но в диалоге подключения к СУБД и заполнения информации о подключении к RabbitMQ-server, выбрать экранную кнопку [Отмена].

Установка узлов - шлюзов подключений

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

После завершения установки изменить настройки запуска службы termidesk-wsproxy:

  • отредактировать файл /etc/opt/termidesk-vdi/termidesk.conf , приведя фрагмент файла к виду:
...
# Порт, который будет прослушивать служба termidesk-wsproxy
WSPROXY_PORT=5099
# Адрес, который должна слушать служба termidesk-wsproxy
# при распределённой установке:
WSPROXY_BIND_ADDRESS="0.0.0.0"
...
BASH
  • сохранить файл, а затем перезапустить службу:
:~$ sudo systemctl restart termidesk-wsproxy
BASH

Установка узлов - менеджеров ВРМ

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

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

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

:~$ sudo systemctl stop termidesk-taskman && sudo systemctl disable termidesk-taskman
BASH

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

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

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

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

:~$ sudo apt install -y nginx
BASH

где:

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

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

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

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