ОС Astra Linux Special Edition

Автоматизированная установка «Агрегатора»

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

Перед установкой следует убедиться, что в БД отсутствуют записи (необходимо использовать чистую БД).

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

  • создать файл /etc/default/termidesk-vdi.local:

sudo touch /etc/default/termidesk-vdi.local
  • указать в созданном файле каталоги расположения конфигурационного файла и шаблонов настройки регистрации событий и журналирования:

ETC='/etc/opt/termidesk-vdi'
TEMPLATES_DIR='/etc/opt/termidesk-vdi/templates'
  • указать в созданном файле параметр NON_INTERACTIVE_INSTALLATION со значением yes для отключения отображения диалогов настройки параметров:

NON_INTERACTIVE_INSTALLATION='yes'
  • создать каталог /etc/opt/termidesk-vdi:

sudo mkdir /etc/opt/termidesk-vdi
  • создать файл /etc/opt/termidesk-vdi/termidesk.conf:

sudo touch /etc/opt/termidesk-vdi/termidesk.conf
  • отредактировать созданный файл по примеру ниже;

  • выполнить:

sudo apt install -y termidesk-vdi
Описание параметров файла приведено в подразделе Конфигурационный файл termidesk.conf.

Пример файла /etc/opt/termidesk-vdi/termidesk.conf:

  • используются значения по умолчанию для имени пользователи и пароля;

  • пароли и имена хранятся в конфигурационном файле (хранилище не используется);

  • используется незащищенное подключение к БД и RabbitMQ .

TERMIDESK_FARM_MODE='AGGREGATOR'
NODE_ROLES='ADMIN,USER,CELERYMAN'
NODE_NAME=aggregator-portal-celery_0050568fef1a
SECRETS_STORAGE_METHOD='config'
DB_CLUSTER_MODE='single'
DBHOST='localhost'
DBPORT='5432'
DBSSL='Disable'
DBNAME='termidesk'
DBUSER='termidesk'
DBPASS='ksedimret'
DB_CONN_MAX_AGE=600
CELERY_DB_REUSE_MAX=1000
DB_CONN_TIMEOUT=10
RABBITMQ_URL1='amqp://termidesk:ksedimret@localhost:5672/termidesk'
RABBITMQ_URL2=
RABBITMQ_URL3=
RABBITMQ_SSL='Disable'
DJANGO_SECRET_KEY='t6ajnMB3KMyfMEffz8SYlZMzCsGP0dENc2wFXYPAfgc='
LOG_LEVEL='INFO'
LOG_ADDRESS='/dev/log'
LOG_FACILITY='local3'
LOG_DIR='/var/log/termidesk'
LOG_OWNER='termidesk'
LOG_GROUP='adm'
LOG_PERM='0440'
LOG_DEEP='14'
FLUENTD_CACHE=15
FLUENTD_TABLE='logs'
FLUENTD_LOGGER_TIMEOUT=5
HEALTH_CHECK_ACCESS_KEY='7e3a48572334c022ce774668047b4b00d44a7129e7857ae0a068f00832aee499'
METRICS_ACCESS_KEY='0f77b6a57b491e0aa4cd7a78d3d068386a5a0b6832c25b6b0c2bdcfbc079e92a'
EULA_ACCEPTED='YES'
AGGREGATOR_IMAGE_CACHE_LIFETIME_HOURS=672
AGGREGATOR_HTTP_TIMEOUT=10

После установки указанные в открытом виде пароли можно привести к преобразованным значениям через утилиту /opt/termidesk/bin/scramble.

После установки нужно:

  • скорректировать файл конфигурации веб-сервера /etc/apache2/apache2.conf. Для этого нужно найти и раскомментировать строку с параметром AstraMode, далее присвоить данному параметру значение off, точно соблюдая отступы и пробелы в файле:

# Astra security mode
#
AstraMode off
  • затем перезапустить веб-сервер:

sudo systemctl restart apache2
  • задать ключ для подписи JWT-токена для взаимодействия с узлами фермы Termidesk VDI. Ключ может быть задан через файл termidesk.conf (параметр AGGREGATOR_JWT_SSL_KEY) или через утилиту termidesk-config;

  • заполнить файл сопоставления mapping.yaml и указать его в termidesk.conf (параметр AGGREGATOR_YAML_FILE).

После установки параметры «Агрегатора» могут быть изменены:

  • через файл termidesk.conf;

  • или через утилиту termidesk-config.

Неавтоматизированная установка «Агрегатора»

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

Перед установкой следует убедиться, что в БД отсутствуют записи (необходимо использовать чистую БД).

Установка производится аналогично подразделу Неавтоматизированная комплексная установка Termidesk VDI документа СЛЕТ.10001-01 90 01 «Руководство администратора. Установка программного комплекса».

Возможность установки веб-порталов «Агрегатор администратора» и «Агрегатор пользователя» зависит от типа редакции Termidesk VDI.

Установка веб-порталов «Агрегатор администратора» и/или «Агрегатор пользователя» должна производиться на узле, отличном от «Портала администратора» и/или «Портала пользователя» фермы Termidesk VDI.

Начиная с Termidesk VDI версии 6.1 компонент «Шлюз» (пакет termidesk-gateway) более не входит в поставку. Для использования «Шлюза» следует установить программу для электронной вычислительной машины «Балансировщик нагрузки Термидеск Коннект» (Termidesk Connect).

В процессе установки необходимо отметить следующие пункты:

Описание относится к комплексной установке: все указанные роли устанавливаются на одном узле.
  • при выборе режима работы ПО: «Агрегатор»;

  • при выборе ролей:

    • «Портал администратора». После установки будет запущена служба termidesk-vdi;

    • и (или) «Портал пользователя». После установки будет запущена служба termidesk-vdi;

  • «Менеджер рабочих мест». После установки будут запущены службы termidesk-celery-beat, termidesk-celery-worker.

После установки нужно:

  • скорректировать файл конфигурации веб-сервера /etc/apache2/apache2.conf. Для этого нужно найти и раскомментировать строку с параметром AstraMode, далее присвоить данному параметру значение off, точно соблюдая отступы и пробелы в файле:

# Astra security mode
#
AstraMode off
  • затем перезапустить веб-сервер:

sudo systemctl restart apache2
  • задать ключ для подписи JWT-токена для взаимодействия с узлами фермы Termidesk VDI. Ключ может быть задан через файл termidesk.conf (параметр AGGREGATOR_JWT_SSL_KEY) или через утилиту termidesk-config;

  • заполнить файл сопоставления mapping.yaml и указать его в termidesk.conf (параметр AGGREGATOR_YAML_FILE).

После установки параметры «Агрегатора» могут быть изменены:

  • через файл termidesk.conf;

  • или через утилиту termidesk-config.

Минимальная распределенная установка «Агрегатора»

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

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

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

Реализация отказоустойчивости инфраструктурных сервисов выполняется организацией в соответствии с требованиями к инфраструктуре.

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

Начиная с Termidesk VDI версии 6.1 компонент «Шлюз» (пакет termidesk-gateway) не входит в основную поставку. Для замены «Шлюза» следует использовать программу для электронной вычислительной машины «Балансировщик нагрузки Термидеск Коннект» (Termidesk Connect).

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

  • «Агрегатор» (служба termidesk-vdi);

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

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

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

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

  • на всех узлах настроена синхронизация времени от единого источника.

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

Схема минимальной распределенной установки с Termidesk Connect приведена на рисунке (см. рисунок Схема минимальной распределенной установки при наличии лицензии Termidesk Connect).

Особенности:

  • для реализации функционала «Шлюза» используется лицензия Termidesk Connect Basic;

  • для реализации функционала балансировщика используется лицензия Termidesk Connect. При отсутствии лицензии допускается использование сторонних балансировщиков нагрузки.

image
Рисунок 1. Схема минимальной распределенной установки
image
Рисунок 2. Схема минимальной распределенной установки при наличии лицензии Termidesk Connect

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

Таблица 1. Перечень компонентов схемы минимальной распределенной установки
Компонент FQDN Подпись на схеме

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

aggr1termidesk.local

«Агрегатор 1»

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

aggr2.termidesk.local

«Агрегатор 2»

Termidesk Connect (лицензия «Termidesk Connect Basic») №1

tdc-gw1.termidesk.local

«Termidesk Connect (Шлюз) 1»

Termidesk Connect (лицензия «Termidesk Connect Basic») №2

tdc-gw2.termidesk.local

«Termidesk Connect (Шлюз) 2»

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

tsk1.termidesk.local

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

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

tsk2.termidesk.local

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

Termidesk Connect №1

tdc-lb1.termidesk.local

«Termidesk Connect 1»

Termidesk Connect №2

tdc-lb2.termidesk.local

«Termidesk Connect 2»

База данных c брокером сообщений RabbitMQ

db.termidesk.local

«Сервер СУБД и RabbitMQ»

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

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

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

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

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

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

  • устанавливаются шлюзы.

Заключительным этапом устанавливаются и настраиваются «Балансировщики нагрузки».

Установка и настройка СУБД 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
  • сохранить файл и перезапустить службу rabbitmq-server:

sudo systemctl restart rabbitmq-server

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

Процесс установки первого узла с «Агрегатором» аналогичен комплексной установке. В процессе установки следует выбрать роли: «Агрегатор администратора (AGGR_ADM)», «Агрегатор пользователя (AGGR_USR)» и «Менеджер рабочих мест (CELERYMAN)».

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

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

где:

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

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

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

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

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

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

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

Установка шлюзов

Начиная с Termidesk VDI версии 6.1 функционал «Шлюза» реализуется через продукт Termidesk Connect. Подробные сведения приведены в документации Termidesk Connect (доступ по ссылке: https://termidesk.ru/docs/).

Установка «Балансировщиков нагрузки»

Подробные сведения по установке «Балансировщика нагрузки» приведены в документации Termidesk Connect (доступ по ссылке: https://termidesk.ru/docs/).

При отсутствии полной лицензии на Termidesk Connect допускается использование сторонних балансировщиков нагрузки.

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

Настройка «Балансировщика нагрузки» приведена в документации Termidesk Connect (доступ по ссылке: https://termidesk.ru/docs/).

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

После установки параметры «Агрегатора» могут быть изменены:

  • через файл termidesk.conf;

  • или через утилиту termidesk-config.

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

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

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

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

Реализация отказоустойчивости инфраструктурных сервисов выполняется организацией в соответствии с требованиями к инфраструктуре.

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

Начиная с Termidesk VDI версии 6.1 компонент «Шлюз» (пакет termidesk-gateway) не входит в основную поставку. Для замены «Шлюза» следует использовать программу для электронной вычислительной машины «Балансировщик нагрузки Термидеск Коннект» (Termidesk Connect).

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

  • «Агрегатор» (служба termidesk-vdi);

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

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

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

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

  • на всех узлах настроена синхронизация времени от единого источника.

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

Схема стандартной распределенной установки с Termidesk Connect приведена на рисунке (см. рисунок Схема стандартной распределенной установки при наличии лицензии). Особенности:

  • для реализации функционала «Шлюза» используется лицензия Termidesk Connect Basic;

  • для реализации функционала балансировщика используется лицензия Termidesk Connect. При отсутствии лицензии допускается использование сторонних балансировщиков нагрузки.

image
Рисунок 3. Схема стандартной распределенной установки
Схема стандартной распределенной установки при наличии лицензии

Termidesk Connect image::screenshots/407896716/407896837.png[image,align=center,width=752]

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

Таблица 2. Перечень компонентов схемы стандартной распределенной установки
Компонент FQDN Подпись на схеме

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

aggr1termidesk.local

«Агрегатор 1»

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

aggr2.termidesk.local

«Агрегатор 2»

Termidesk Connect (лицензия «Termidesk Connect Basic») №1

tdc-gw1.termidesk.local

«Termidesk Connect (Шлюз) 1»

Termidesk Connect (лицензия «Termidesk Connect Basic») №2

tdc-gw2.termidesk.local

«Termidesk Connect (Шлюз) 2»

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

tsk1.termidesk.local

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

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

tsk2.termidesk.local

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

Termidesk Connect №1

tdc-lb1.termidesk.local

«Termidesk Connect 1»

Termidesk Connect №2

tdc-lb2.termidesk.local

«Termidesk Connect 2»

База данных c брокером сообщений RabbitMQ

db.termidesk.local

«Сервер СУБД и RabbitMQ»

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

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

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

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

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

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

  • устанавливаются шлюзы;

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

Заключительным этапом устанавливаются и настраиваются «Балансировщики нагрузки».

Установка и настройка СУБД 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
  • сохранить файл и перезапустить службу rabbitmq-server:

sudo systemctl restart rabbitmq-server

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

Процесс установки первого узла с «Агрегатором» аналогичен комплексной установке. В процессе установки следует выбрать роли: «Агрегатор администратора (AGGR_ADM)», «Агрегатор пользователя (AGGR_USR)» и «Менеджер рабочих мест (CELERYMAN)».

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

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

где:

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

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

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

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

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

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

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

Установка шлюзов

Начиная с Termidesk VDI версии 6.1 функционал «Шлюза» реализуется через продукт Termidesk Connect. Подробные сведения приведены в документации Termidesk Connect (доступ по ссылке: https://termidesk.ru/docs/).

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

Установка «Менеджеров рабочих мест» производится на два узла, работающих в режиме отказоустойчивой конфигурации, при которой оба узла активно обрабатывают трафик (конфигурация «Active - Active»), а отказ одного из них не нарушает работоспособность фермы Termidesk VDI.

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

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

sudo mv /home/user/termidesk-vdi /etc/opt/
  • создается файл /etc/default/termidesk-vdi.local:

sudo touch /etc/default/termidesk-vdi.local
  • в созданном файле указываются каталоги расположения конфигурационного файла и шаблонов настройки регистрации событий и журналирования:

ETC='/etc/opt/termidesk-vdi'

TEMPLATES_DIR='/etc/opt/termidesk-vdi/templates'
  • редактируется файл /etc/opt/termidesk-vdi/termidesk.conf, параметру NODE_ROLES присваивается значение CELERYMAN;

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

sudo apt -y install termidesk-vdi

где:

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

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

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

Установка «Балансировщиков нагрузки»

Подробные сведения по установке «Балансировщика нагрузки» приведены в документации Termidesk Connect (доступ по ссылке: https://termidesk.ru/docs/).

При отсутствии полной лицензии на Termidesk Connect допускается использование сторонних балансировщиков нагрузки.

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

Настройка «Балансировщика нагрузки» приведена в документации Termidesk Connect (доступ по ссылке: https://termidesk.ru/docs/).

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

После установки параметры «Агрегатора» могут быть изменены:

  • через файл termidesk.conf;

  • или через утилиту termidesk-config.

Комплексное обновление «Агрегатора»

Обновление должно осуществляться с соблюдением условий:

  • обновление выполняется последовательно, с установкой промежуточных версий релизов. Например: 6.0 - 6.0.1 - 6.0.2 - 6.1;

  • обновление выполняется операцией установки поверх предыдущей версии. В противном случае, если ранее «Агрегатор» был удален без удаления БД, при повторной установке может возникнуть ряд ошибок;

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

Если в файлы запуска вручную были внесены какие-либо изменения, то эти изменения при обновлении не сохраняются.

Начиная с Termidesk VDI версии 6.1 компонент «Шлюз» (пакет termidesk-gateway) не входит в основную поставку. Для замены «Шлюза» следует использовать программу для электронной вычислительной машины «Балансировщик нагрузки Термидеск Коннект» (Termidesk Connect).

Особенности:

  • для реализации функционала «Шлюза» используется лицензия Termidesk Connect Basic;

  • для реализации функционала балансировщика используется лицензия Termidesk Connect. При отсутствии лицензии допускается использование сторонних балансировщиков нагрузки.

Перед любым обновлением рекомендуется выполнить резервное копирование БД:

pg_dump -d <наименование БД> -h <IP-адрес_хоста> -p <порт> -U <пользователь> -W > <имя_файла_для_сохранения_БД.sql>

где:

-d <наименование БД> - имя БД. При стандартных настройках используется имя termidesk;

-h <IP-адрес_хоста> - IP-адрес узла, где расположена БД. Если БД устанавливалась локально, нужно указать localhost;

-p <порт> - порт для подключения к БД. При стандартных настройках используется 5432;

-U <пользователь> - имя пользователя для подключения. При стандартных настройках используется имя termideskdb;

-W - запрос пароля для подключения к БД. При стандартных настройках при появлении запроса нужно указать ksedimret;

<имя_файла_для_сохранения_БД.sql> - имя и формат файла (sql) для сохранения БД.

Для обновления «Агрегатора» нужно:

  • остановить службы:

sudo systemctl stop termidesk-vdi termidesk-celery-beat termidesk-celery-worker
  • подключить репозиторий Termidesk VDI;

  • при использовании ОС Astra Linux Special Edition в более защищенном режиме, например, «Смоленск», потребуется выполнить дополнительную настройку:

    • для пользователя БД назначить классификационную метку (в примере используется termideskdb, в более ранних версиях использовалось имя пользователя termidesk):

      sudo pdpl-user -i 0 termideskdb
    • предоставить пользователю postgres права на чтение файла, содержащего классификационную метку пользователя termideskdb, подключающегося к БД:

      sudo setfacl -m u:postgres:r /etc/parsec/macdb/$(id -u termideskdb)
    • создать системного пользователя termideskdb (имя должно совпадать с именем пользователя в БД):

      sudo useradd -M termideskdb -s /usr/sbin/nologin -d /home/termideskdb
  • выполнить обновление:

sudo apt install -y termidesk-vdi

где:

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

  • в диалогах ввода параметров подключения к СУБД и RabbitMQ нажать экранную кнопку [OK];

  • в диалоге выбора ролей нужно нажать экранную кнопку [OK];

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

После обновления нужно заполнить файл сопоставления mapping.yaml и указать его в termidesk.conf (параметр AGGREGATOR_YAML_FILE).

Обновление для распределенной конфигурации установки «Агрегатора»

Общая концепция обновления

Описание применимо к ферме «Агрегатора», установленной в распределенной конфигурации. Общая последовательность действий приведена на рисунке Последовательность обновления распределенной конфигурации.

Обновление должно осуществляться с соблюдением условий:

  • если используется «Агрегатор», то ферма «Агрегатора» обновляется первой, и только потом обновляется ферма поставщиков ресурсов (ферма Termidesk VDI);

  • обновление выполняется последовательно, с установкой промежуточных версий релизов. Например: 6.0 - 6.0.1 - 6.0.2 - 6.1;

  • обновление выполняется операцией установки поверх предыдущей версии. В противном случае, если ранее «Агрегатор» был удален без удаления БД, при повторной установке может возникнуть ряд ошибок;

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

Начиная с Termidesk VDI версии 6.1 компонент «Шлюз» (пакет termidesk-gateway) не входит в основную поставку. Для замены «Шлюза» следует использовать программу для электронной вычислительной машины «Балансировщик нагрузки Термидеск Коннект» (Termidesk Connect).

Особенности:

  • для реализации функционала «Шлюза» используется лицензия Termidesk Connect Basic;

  • для реализации функционала балансировщика используется лицензия Termidesk Connect. При отсутствии лицензии допускается использование сторонних балансировщиков нагрузки.

image
Рисунок 4. Последовательность обновления распределенной конфигурации

На схеме:

  • режим совместимости - режим, характеризующийся отличием в версиях между любыми компонентами фермы «Агрегатора»;

  • режим обновления - режим, характеризующийся наличием не обновленных «Агрегаторов» при уже обновленных записях БД.

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

Шаг 1. На всех балансировщиках нагрузки, отвечающих за распределение подключений к «Агрегаторам»,из списка балансировки исключается часть «Агрегаторов».

Шаг 2. На сервер с СУБД, либо на отдельно выделенный сервер,устанавливается и настраивается компонент RabbitMQ в случае, если ранее RabbitMQ не был установлен.

Шаг 3. Создается резервная копия RSA-ключей, расположенных в каталоге /etc/opt/termidesk-vdi/wsproxy/.

Шаг 4. Обновляется первый «Менеджер рабочих мест». Запуск служб выполняется автоматически. На обновленном «Менеджере рабочих мест» восстанавливаются RSA-ключи из резервной копии, созданной на Шаге 3. В этом процессе автоматически будут обновлены записи в БД.

Шаг 5. Обновляются последующие «Менеджеры рабочих мест». Запуск служб выполняется автоматически. На обновленном «Менеджере рабочих мест» восстанавливаются RSA-ключи из резервной копии, созданной на Шаге 3.

Шаг 6. Последовательно обновляются все узлы «Агрегатора» («Агрегатор администратора», «Агрегатор пользователя», «Агрегатор универсальный»). Запуск служб выполняется автоматически. На обновленных «Агрегаторах» восстанавливаются RSA-ключи из резервных копий, созданных на Шаге 3. Узлы перезагружаются.

Шаг 7. На всех балансировщиках нагрузки список балансировки восстанавливается до исходного.

После обновления фермы «Агрегатора» выполняется обновление фермы Termidesk VDI.

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

Шаг 1. Редактирование конфигурации балансировщика нагрузки

На балансировщике нагрузки открыть и отредактировать файл /etc/nginx/sites-available/sampledomain.ru.conf.

В данном конфигурационном файле следует найти директиву daas-upstream-nodes с перечислением списка «Агрегаторов», закомментировать все узлы и сохранить файл.

Пример для списка балансировки:

Здесь и далее примеры IP-адресов приведены в соответствии с RFC 5737. Указанные IP-адреса должны быть заменены на актуальные, используемые согласно схеме адресации, принятой в инфраструктуре организации.
upstream daas-upstream-nodes {
 least_conn;
     server 192.0.2.33;
     server 192.0.2.34;
     server 192.0.2.35;
 }

Для исключения всех узлов файл приводится к виду:

upstream daas-upstream-nodes {
 least_conn;
     #server 192.0.2.33;
     #server 192.0.2.34;
     #server 192.0.2.35;
 }

После изменения файла перезапустить веб-сервер:

sudo systemctl restart nginx

Шаг 2. Установка и настройка RabbitMQ

При отсутствии ранее установленного RabbitMQ выполняется его установка в соответствии с подразделом Подготовка среды функционирования документа СЛЕТ.10001-01 90 01 «Руководство администратора. Установка программного комплекса».

Ферма «Агрегатора» не должна использовать экземпляры БД и брокера сообщений RabbitMQ, предназначенные для фермы Termidesk VDI.

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

  • для пользователя БД назначить классификационную метку (в примере используется termideskdb, в более ранних версиях использовалось имя пользователя termidesk):

sudo pdpl-user -i 0 termideskdb
  • предоставить пользователю postgres права на чтение файла, содержащего классификационную метку пользователя termideskdb, подключающегося к БД:

sudo setfacl -m u:postgres:r /etc/parsec/macdb/$(id -u termideskdb)
  • создать системного пользователя termideskdb (имя должно совпадать с именем пользователя в БД):

sudo useradd -M termideskdb -s /usr/sbin/nologin -d /home/termideskdb

Шаг 3. Резервное копирование RSA-ключей

Выполнить резервное копирование RSA-ключей с одного из узлов «Агрегатора». Резервные копии ключей можно скопировать, например, на другой сетевой узел командой:

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

где:

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

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

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

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

Шаг 4. Обновление первого «Менеджера рабочих мест»

Перед запуском процедуры обновления нужно:

  • отредактировать файл /etc/opt/termidesk-vdi/termidesk.conf и задать значение для параметра METRICS_ACCESS_KEY, если оно не задано;

При редактировании файла /etc/opt/termidesk-vdi/termidesk.conf рекомендуется использовать одинаковое значение параметра METRICS_ACCESS_KEY для всех «Менеджеров рабочих мест».

  • остановить службы Termidesk VDI:

sudo systemctl stop termidesk-celery-beat termidesk-celery-worker
  • удалить кеш файла ответов debconf командами:

sudo rm -f /var/cache/debconf/config.dat
sudo rm -f /var/cache/debconf/config.dat-old

Для обновления «Менеджера рабочих мест»:

  • обновить список пакетов и выполнить запуск файла установщика:

sudo apt update
sudo apt install termidesk-vdi
  • в диалоговом окне псевдографического интерфейса инсталлятора выбрать режим работы ПО «Агрегатор».

После обновления выполнить копирование сохраненных на Шаге 3 RSA-ключей на узел с обновленным «Менеджером рабочих мест».

Шаг 5. Обновление остальных «Менеджеров рабочих мест»

Обновление производится аналогично Шагу 4.

Шаг 6. Обновление узлов «Агрегаторов»

Перед запуском процедуры обновления нужно:

  • отредактировать файл /etc/opt/termidesk-vdi/termidesk.conf и задать значение для параметра METRICS_ACCESS_KEY, если оно не задано;

Корректировка файла /etc/apache2/apache2.conf при обновлении не производится.

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

  • остановить службу Termidesk VDI:

sudo systemctl stop termidesk-vdi
  • удалить кеш файла ответов debconf командами:

sudo rm -f /var/cache/debconf/config.dat
sudo rm -f /var/cache/debconf/config.dat-old

где:

-f - ключ игнорирования несуществующих файлов.

Для обновления «Агрегатора»:

  • обновить список пакетов и выполнить запуск файла установщика:

sudo apt update
sudo apt install termidesk-vdi
  • в диалоговом окне псевдографического интерфейса инсталлятора выбирается режим работы «Агрегатор», роль «Портал администратора» и/или «Портал пользователя» в зависимости от ранее установленной роли.

После обновления:

  • выполнить копирование сохраненных на Шаге 3 RSA-ключей на узлы с обновленными «Агрегаторами»;

  • заполнить файл сопоставления mapping.yaml и указать его в termidesk.conf (параметр AGGREGATOR_YAML_FILE);

  • перезагрузить узлы:

sudo reboot

После загрузки узла проверить состояние служб:

sudo systemctl -a | grep termidesk

где:

-a - ключ для вывода списка служб;

grep - утилита для поиска текста в выводе предыдущей команды.

Проверить доступность веб-порталов «Агрегатора» через веб-браузер.

Шаг 7. Восстановление конфигурации балансировщика нагрузки

По завершении обновления ВСЕХ узлов «Агрегатора» список балансировки на ВСЕХ балансировщиках восстанавливается до исходного.

Пример для балансировщика nginx:

  • ранее закомментированные строки нужно раскомментировать;

  • затем выполнить перезагрузку службы nginx на каждом балансировщике:

sudo systemctl restart nginx

Выполнить проверку доступности веб-портала «Агрегатора» через веб-браузер сначала обращением на IP-адрес каждого из «Агрегаторов», затем обращением на IP-адрес балансировщика нагрузки.

Удаление Termidesk

Для удаления нужно:

  • выполнить:

sudo apt purge termidesk-vdi
  • удалить файлы, задающие переменные окружения:

sudo rm /etc/default/termidesk-vdi.local
sudo rm /etc/default/termidesk-vdi

Для удаления БД и роли пользователя следует выполнить следующие действия, строго соблюдая их последовательность:

  • переключиться на пользователя postgres (через пользователя root):

sudo su postgres
  • запустить терминальный клиент СУБД:

psql
  • используя интерактивный интерфейс терминального клиента СУБД, удалить БД:

postgres=# DROP DATABASE termidesk;
  • удалить роль пользователя БД:

postgres=# DROP ROLE termidesk;
  • выйти из интерактивного интерфейса терминального клиента СУБД:

postgres=# \q
  • выйти из сеанса пользователя postgres:

exit
  • удалить оставшийся каталог с файлами, содержащими переменные для подключения к БД, сертификат и ключ:

Если для хранения конфигурационных файлов, журналов и шаблонов использовались каталоги, отличные от стандартных, нужно удалить их.

sudo rm -R /etc/opt/termidesk-vdi

где:

-R - ключ для рекурсивного действия. Будут удалены все вложенные подкаталоги.