ОС Astra Linux Special Edition

Неавтоматизированная комплексная установка Termidesk VDI

Для установки фермы Termidesk VDI с использованием псевдографического интерфейса нужно:

sudo apt install termidesk-vdi

При установке пакета termidesk-vdi возможно активировать режим отладки через переменную окружения TDSK_DEBUG=1.

Одним из параметров службы termidesk-vdi (/lib/systemd/system/termidesk-vdi.service) является EnvironmentFile, задающий дополнительные аргументы функционирования, перечисленные в файле /etc/default/termidesk-vdi.local (см. подраздел Файл /etc/default/termidesk-vdi.local).

Рекомендуется также установить пакеты postgresql и expect для возможности тестирования подключения к БД во время установки:

sudo apt -y install postgresql expect

В зависимостях пакета установки termidesk-vdi есть:

  • служба ведения журналов syslog-ng. Работа с другими службами ведения журналов не гарантируется;

  • пакет libpython3.11 для ОС Astra Linux Special Edition 1.8, предоставляющий возможность установить Termidesk VDI в ОС с минимальной конфигурацией (без графического интерфейса ОС).

Перед обновлением ОС или службы syslog-ng рекомендуется создать резервную копию файла syslog-ng.conf. В случае обновления ОС или службы syslog-ng без предварительного создания резервной копии файла, может потребоваться переустановка Termidesk VDI для восстановления его корректной работы.

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

В процессе установки нужно:

Для переключения между экранными кнопками [Ок] и [Отмена] в псевдографическом интерфейсе используется клавиша <Tab>.
image
Рисунок 1. Запрос настроек по умолчанию для Kerberos-аутентификации
image
Рисунок 2. Лицензионное соглашение
  • нажать экранную кнопку [Да] для принятия условий лицензионного соглашения и продолжения установки или экранную кнопку [Нет] в случае отказа, при этом установка прервется (см. рисунок Принятие условий лицензионного соглашения);

image
Рисунок 3. Принятие условий лицензионного соглашения
  • далее настроить расположение каталогов для файлов Termidesk VDI (см. рисунок Настройка расположения каталогов):

    • «Расположения конфигурации»: каталог, в котором будет расположен файл termidesk.conf;

    • «Хранения журналов»: каталог, в котором будут расположены файлы журналов;

    • «Шаблонов syslog/logrotate»: каталог, в котором будут распололжены шаблоны для настройки регистрации событий и журналирования;

      Каталог, в котором будут расположены файлы Termidesk VDI, должен обладать свойствами:

      • права на каталог: rwxr-x--- (750);

      • владелец каталога: root:termidesk.

image
Рисунок 4. Настройка расположения каталогов
  • далее выбрать режим работы (см. рисунок Выбор режима работы ПО):

    • «Диспетчер»: установка фермы «Универсального диспетчера»;

    • «Агрегатор»: установка фермы «Агрегатора»;

      Установка «Агрегатора» должна производиться на отдельном узле, отличном от «Диспетчера».

image
Рисунок 5. Выбор режима работы ПО
  • затем выбрать устанавливаемую роль узла:

    При комплексной установке необходимо выбрать роли:

    • «Портал администратора»;

    • «Портал пользователя»;

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

    Если не выбрать ни одной роли, то ни одна служба Termidesk VDI запущена не будет.

    • «Портал администратора (ADMIN)»: установится «Портал администратора», предоставляющий интерфейс для управления Termidesk VDI и интерфейс Swagger для доступа к ограниченному списку модулей документации по командам REST API. После установки будет запущена служба termidesk-vdi;

    • «Портал пользователя (USER)»: установится «Портал пользователя», предоставляющий пользовательский интерфейс Termidesk VDI и интерфейс Swagger для доступа к ограниченному списку модулей документации по командам REST API. Интерфейс управления Termidesk VDI будет недоступен. После установки будет запущена служба termidesk-vdi;

    • при выборе и роли «Портал администратора», и роли «Портал пользователя» активируется «Портал универсальный» будут доступны функции обоих вариантов, при этом активируется доступ ко всем модулям документации по командам REST API, предоставляемым интерфейсом Swagger;

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

    • «Брокер сообщений (TERMQ)»: установится компонент «Брокер сообщений TermideskMQ» (экспериментальный). После установки будет запущена служба termidesk-tmq;

  • если для установки выбрана роль «Брокер сообщений (TERMQ)», то необходимо задать настройки брокера сообщений TermideskMQ:

    • «Адрес для подключений»: IP-адрес прослушивания входящих подключений для «Брокера сообщений TermideskMQ»;

    • «Базовый порт для подключений»: базовый номер порта «Брокера сообщений TermideskMQ» для незащищенного подключения (стандартный порт: 5555). Для «Брокера сообщений TermideskMQ» будет зарезервирован указанный порт, а также последующий: например 5555, 5556;

      При использовании кластера «Брокера сообщений TermideskMQ»:

      • должен использоваться режим mTLS;

      • в зависимости от базового порта будут определены внутренние TCP-порты для запуска «Брокера сообщений TermideskMQ» на localhost;

      • порты mTLS, использующиеся для IP-адреса, указанного в TMQ_BASE_ADDRESS:

        • базовый порт (например, 5555);

        • базовый порт +1 (например, 5556);

      • внутренние TCP-порты для запуска на localhost:

        • базовый порт + 3 (например, 5558), используется для приема сообщений;

        • базовый порт + 3 + 1 (например, 5559), используется для приема подключения и отправки сообщений.

  • далее задать уникальное имя узла для его идентификации (см. рисунок Настройка уникального имени узла). Это требуется для однозначной идентификации узлов, в частности, узлов «Агрегатора» во время балансировки подключений к ним;

Следует задавать уникальное имя узла понятным и отражающим его роль, например «AdminPortal-01», «UserPortal-01».

По умолчанию для заполнения параметра используется заданный в системе hostname и буквенно-числовой идентификатор.

image
Рисунок 6. Настройка уникального имени узла
  • далее выбрать способ хранения паролей подключения к СУБД и брокеру сообщений (см. рисунок Выбор способа хранения паролей);

    Для всех узлов фермы Termidesk VDI должен выбираться единый способ хранения и единое хранилище (в случае выбора способа «hvac»).

    • «config» (по умолчанию) - пароли будут храниться в преобразованном виде в файле /etc/opt/termidesk-vdi/termidesk.conf;

    • «hvac» (рекомендуемый способ для безопасного хранения) - для хранения паролей будет использоваться хранилище паролей OpenBao или Hashicorp Vault (хранилище должно быть заранее создано и настроено). Подробная информация по этому способу хранения паролей приведена в подразделе Хранение чувствительной информации с выбранным способом хранения «hvac» документа СЛЕТ.10001-01 90 02 «Руководство администратора. Настройка программного комплекса»;

    • «openbao» (экспериментальный) - для хранения паролей будет использоваться хранилище паролей OpenBao (хранилище должно быть заранее создано и настроено). При этом пароли располагаются внутри хранилища, имена контейнеров хранения генерируются автоматически;

image
Рисунок 7. Выбор способа хранения паролей
  • при выборе хранения паролей «openbao» или «hvac» нужно задать параметры подключения к хранилищу и параметры, настроенные непосредственно на хранилище (см. рисунок Настройка подключения к OpenBao):

    • «URL хранилища» - IP-адрес или FQDN узла и порт с установленным хранилищем OpenBao. Формат: http://<IP-адрес>:8200 или http://<FQDN>:8200;

      Хранилище паролей OpenBao должно быть реализовано в отказоустойчивом варианте, иначе Termidesk VDI не будет работать в период простоя узлов OpenBao.

    • «Версия API OpenBao» - установленная версия API на OpenBao (1 или 2);

    • «Путь к токену доступа к хранилищу» - путь к файлу с токеном доступа к OpenBao;

    • «Роль доступа Termidesk VDI (AppRole)» - роль, настроенная на OpenBao, имеющая доступ к логинам и паролям;

    • «ИД роли доступа (RoleID)» - идентификатор роли доступа;

    • «Путь к логину/паролю СУБД» - путь, настроенный на OpenBao для хранения логина и пароля СУБД;

    • «Путь к логинам/паролям RabbitMQ» - путь, настроенный на OpenBao для хранения логинов и паролей брокера сообщений;

    • «Путь к другим секретам Termidesk» - путь, настроенный на OpenBao для хранения других логинов и паролей Termidesk VDI;

    • «Время кеширования паролей, с» - время (в секундах) хранения пароля, полученного от OpenBao, во внутренней памяти;

    • «Период проверки токена доступа, с» - интервал (в секундах) проверки актуальности токена;

    • «Обновлять токен до его устар., с» - оставшееся время (в секундах) актуальности токена, по достижении которого он будет обновлен;

    • «Время жизни токена, с» - время актуальности (в минутах) одноразового токена;

    • «Пространство имён» - пространство имени, заданного на OpenBao;

image
Рисунок 8. Настройка подключения к OpenBao
  • подключение может выполняться по протоколу HTTPS, если OpenBao настроен соответствующим образом. Для подключения по HTTPS нужно нажать экранную кнопку [Сертификаты] и определить пути (см. рисунок Конфигурация сертификатов и ключей) к сертификатам и ключам (параметры «Сертификат OpenBao начального mTLS», «Секр. ключ OpenBao начального mTLS», «Серт. промеж. ЦС OpenBao нач. mTLS»);

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

Справочная информация по работе с диалогом добавления сертификата доступна по экранной кнопке [Справка] при выборе нужного пункта из списка.

Если заданы сертификаты и ключ для подключения по mTLS, то будет выведено соответствующее предупреждение на этапе задания параметров подключения к СУБД или брокеру сообщений (при ответе «Нет» произойдет возврат к редактированию параметров подключения к узлу):

  • имена узлов для подключения к СУБД или брокеру сообщений (в последующих пунктах установщика) обязательно должны быть заданы в формате FQDN. Использовать IP-адрес узла или localhost не рекомендуется;

  • сертификат должен быть действителен и соответствовать FQDN узла.

При невыполнении условий работа mTLS не гарантируется.

image
Рисунок 9. Конфигурация сертификатов и ключей
  • после настройки способа хранения паролей нужно задать ключ DJANGO. Значение создается автоматически, но при необходимости можно сформировать новое значение, нажав экранную кнопку [Обновить]. Поддерживается задание пути в хранилище чувствительной информации, если ключ DJANGO расположен в нем. Для продолжения установки нажать экранную кнопку [Далее];

image
Рисунок 10. Настройка хранения данных - задание ключа DJANGO
  • далее выбрать протокол, который будет использоваться при подключении к серверу СУБД (см. рисунок Выбор протокола для подключения к СУБД):

    • при выборе значения «Открытый, без защиты» защищенное соединение при подключении к серверу СУБД использоваться не будет;

    • при выборе защищенного подключения нужно нажать экранную кнопку [Сертификаты] и определить пути к сертификатам и ключам (параметры «Сертификат PostgreSQL mTLS», «Секр. ключ PostgreSQL mTLS», «Серт. промеж. ЦС PostgreSQL mTLS»);

image
Рисунок 11. Выбор протокола для подключения к СУБД
  • для продолжения установки нажать экранную кнопку [Далее];

  • выбрать тип установки СУБД (см. рисунок Выбор типа установки СУБД):

    • «Отдельно стоящий сервер»: подключение производится к отдельному серверу СУБД;

    • «Кластер СУБД»: подключение производится к кластеру СУБД;

При выборе типа установки СУБД «Кластер СУБД» можно задать до трех узлов СУБД, к которым будет подключаться Termidesk VDI. При этом предполагается, что порт, имя БД, имя пользователя и его пароль идентичны для всех узлов.

image
Рисунок 12. Выбор типа установки СУБД
  • заполнить параметры подключения к СУБД (см. рисунок Ввод параметров подключения к СУБД):

    • «Адрес»: IP-адрес или FQDN узла с установленной СУБД (в случае локальной установки 127.0.0.1);

    • «Адрес (узел 2)»: IP-адрес или FQDN дополнительного узла СУБД (необязательный параметр, при необходимости может быть задан только для кластера СУБД);

    • «Адрес (узел 3)»: IP-адрес или FQDN дополнительного узла СУБД (необязательный параметр, при необходимости может быть задан только для кластера СУБД);

    • «Порт»: номер порта, используемого для соединения с сервером СУБД (стандартный порт 5432);

    • «Имя базы данных»: наименование БД (termidesk, параметр задавался при создании БД);

    • «Имя пользователя»: имя пользователя БД для подключения к ней (termideskdb, параметр задавался при создании БД);

    • «Пароль»: пароль для подключения к БД (ksedimret, параметр задавался при создании БД);

    • «Время жизни подключения, с»: максимально допустимое время (в секундах) существования одного подключения к БД;

    • «Кол-во задач на подключение»: количество фоновых задач, которое может быть выполнено в рамках одного подключения к БД;

    • «Таймаут подключения к СУБД, с»: время ожидания (в секундах) подключения к БД;

Если для хранения паролей был выбран режим «hvac», то имя пользователя и пароль не задаются в этом окне, т.к. значения для них берутся из хранилища.

image
Рисунок 13. Ввод параметров подключения к СУБД
  • нажать экранную кнопку [Тест] для проверки подключения, ознакомиться с результатом тестирования подключения и для продолжения установки нажать экранную кнопку [Далее];

Тест подключения к СУБД доступен и в режиме mTlS, если:

  • ранее была выбрана защита подключения к СУБД по mTLS;

  • были заданы сертификат, ключ и корневой сертификат УЦ для подключения к СУБД по mTLS.

  • выбрать протокол, который будет использоваться при подключении к брокеру сообщений (см. рисунок Выбор протокола для подключения к брокеру сообщений):

    • при выборе значения «Открытый, без защиты» защищенное соединение при подключении использоваться не будет;

    • при выборе защищенного подключения нужно нажать экранную кнопку [Сертификаты] и определить пути к сертификатам и ключам (параметры «Сертификат RabbitMQ mTLS», «Секр. ключ RabbitMQ mTLS», «Серт. ЦС RabbitMQ mTLS»);

В Termidesk VDI версии 6.1 установка «Брокера сообщений TermideskMQ» поддерживается в экспериментальном режиме (установка происходит на этапе выбора ролей узла далее).

Одновременное использование RabbitMQ и «Брокера сообщений TermideskMQ» в рамках одной фермы не поддерживается. Рекомендуется удалить RabbitMQ или отключить службу rabbitmq-server, если будет использоваться «Брокер сообщений TermideskMQ».

image
Рисунок 14. Выбор протокола для подключения к брокеру сообщений
  • настроить подключение к брокеру сообщений. Для этого выбрать в следующем окне пункт «Empty» и нажать экранную кнопку [Выбрать] (см. рисунок Экранная форма начала настройки подключения к брокеру сообщений). Необходимо задать хотя бы одно подключение. Если не будет задано ни одно подключение, то при нажатии на кнопку [Далее] произойдет возврат в диалог настройки подключений;

image
Рисунок 15. Экранная форма начала настройки подключения к брокеру сообщений
  • выполнить настройку подключения к брокеру сообщений, заполнив параметры (см. рисунок Настройка подключения к брокеру сообщений):

    Если для хранения паролей был выбран режим «hvac», то имя пользователя и пароль не задаются в этом окне, т.к. значения для них берутся из хранилища.

    • «Протокол (amqp/tmqp)»: протокол подключения к брокеру сообщений. Следует назначить: «amqp» для RabbitMQ, «tmqp» для «Брокера сообщений TermideskMQ»;

    • «Адрес»: IP-адрес или FQDN узла с установленным брокером сообщений (в случае локальной установки 127.0.0.1);

    • «Порт»: номер порта, используемого для соединения с брокером сообщения (стандартный порт: 5672 для RabbitMQ, 5555 для «Брокера сообщений TermideskMQ»);

    • «Виртуальный хост»: виртуальный узел, к которому будет производиться подключение (termidesk);

    • «Имя пользователя»: имя пользователя для подключения (termidesk);

    • «Пароль»: пароль для подключения (ksedimret);

image
Рисунок 16. Настройка подключения к брокеру сообщений
  • нажать экранную кнопку [ОК] для продолжения установки;

  • в следующем окне отобразится информация о настроенном подключении (см. рисунок Отображение параметров подключения к брокеру сообщений). При необходимости можно добавить до трех экземпляров брокера сообщений для подключения, выбрав пустые строки «Empty» и повторив ввод параметров подключения. Для продолжения установки следует нажать экранную кнопку [Далее];

Если для хранения паролей был выбран режим «hvac», то имя пользователя будет скрыто.

image
Рисунок 17. Отображение параметров подключения к брокеру сообщений
  • задать токен доступа к службе проверки состояния узла. Значение создается автоматически, но при необходимости можно сформировать новое значение, нажав экранную кнопку [Обновить]. Поддерживается задание пути в хранилище чувствительной информации, если токен расположен в нем. Для продолжения установки нажать экранную кнопку [Далее];

  • задать токен доступа к службе получения метрик узла. Значение создается автоматически, но при необходимости можно сформировать новое значение, нажав экранную кнопку [Обновить]. Поддерживается задание пути в хранилище чувствительной информации, если токен расположен в нем. Для продолжения установки нажать экранную кнопку [Далее];

  • выбрать язык графического интерфейса, который будет использоваться в Termidesk VDI по умолчанию (см. рисунок Выбор языка графического интерфейса Termidesk VDI). Для продолжения установки нажать экранную кнопку [Далее].

image
Рисунок 18. Выбор языка графического интерфейса Termidesk VDI

После установки Termidesk VDI необходимо:

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

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

sudo systemctl restart apache2
  • если при установке было задано использование хранилище паролей, то необходимо выполнить запуск служб Termidesk VDI вручную:

sudo systemctl start termidesk-vdi.service termidesk-celery-beat.service termidesk-celery-worker.service
  • если в инфраструктуре Termidesk VDI будет использоваться портал «Агрегатор» , нужно обязательно задать на узле компонента «Универсальный диспетчер» («Портал пользователя» или «Портал универсальный») сертификат для расшифровки JWT-токена. Сертификат может быть задан через файл /etc/opt/termidesk-vdi/termidesk.conf (параметры AGGREGATOR_JWT_SSL_CERT и AGGREGATOR_JWT_SSL_CERT_SECOND) или через утилиту termidesk-config.

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

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

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

В процессе установки будет выполнена настройка для работы в режиме мандатного контроля целостности и мандатного разграничения доступа:

  • установлена метка 0 для пользователя termidesk и права на чтение файла с меткой пользователю postgres, если такой есть в ОС и метка ещё не устанавливалась. Если метка ранее была установлена, то она не изменится и не сбросится, права на файл с меткой не будут установлены;

  • установлена метка 0 для пользователя, подключающегося к СУБД, и права на чтение файла с меткой пользователю postgres, если такой есть в ОС и метка ещё не устанавливалась. Если метка ранее была установлена, то она не изменится и не сбросится, права на файл с меткой не будут установлены.

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

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

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

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

  • создать файл /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 документа СЛЕТ.10001-01 90 01 «Руководство администратора. Настройка программного комплекса».

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

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

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

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

TERMIDESK_FARM_MODE='BROKER'
NODE_ROLES='ADMIN,USER,CELERYMAN'
NODE_NAME=astra18-tdsk-vdi-ea_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='7e3a48572334c022ce774668047b4b00d44a7129e7857ae0a068f00832aee498'
METRICS_ACCESS_KEY='0f77b6a57b491e0aa4cd7a78d3d068386a5a0b6832c25b6b0c2bdcfbc079e91a'
EULA_ACCEPTED='YES'

После установки указанные в открытом виде пароли можно привести к преобразованным значениям (см. подраздел Конфигурационный файл termidesk.conf документа СЛЕТ.10001-01 90 01 «Руководство администратора. Настройка программного комплекса»).

Если в инфраструктуре Termidesk VDI будет использоваться портал «Агрегатор» («Агрегатор администратора» и/или «Агрегатор пользователя»), нужно обязательно задать на узле компонента «Универсальный диспетчер» фермы Termidesk VDI («Портал пользователя» или «Портал универсальный») сертификат для расшифровки JWT-токена. Сертификат может быть задан через файл termidesk.conf (параметры AGGREGATOR_JWT_SSL_CERT и AGGREGATOR_JWT_SSL_CERT_SECOND) или через утилиту termidesk-config (см. подраздел см. подраздел Утилита termidesk-config документа СЛЕТ.10001-01 90 02 «Руководство администратора. Настройка программного комплекса»).

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

  • через файл 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 СУБД, следует установить брокер сообщений RabbitMQ на узел «Менеджера рабочих мест» или на отдельный узел.

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

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

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

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

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

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

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

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

«Универсальный диспетчер» №1 с ролями «Портал универсальный» и «Менеджер рабочих мест»

disp1.termidesk.local

«Универсальный диспетчер 1»

«Универсальный диспетчер» №2 с ролями «Портал универсальный» и «Менеджер рабочих мест»

disp2.termidesk.local

«Универсальный диспетчер 2»

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

tdc-gw1.termidesk.local

«Termidesk Connect (Шлюз) 1»

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

tdc-gw2.termidesk.local

«Termidesk Connect (Шлюз) 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. При установке следует учесть, что в БД должны отсутствовать записи (необходимо использовать чистую БД);

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

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

  • устанавливаются и настраиваются «Шлюзы».

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

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

Нужно скопировать каталог /etc/opt/termidesk-vdi вместе с его содержимым на узел другого «Универсального диспетчера». Этот каталог содержит ключи для синхронизации параметров между узлами, а также параметры конфигурации узла (файл /etc/opt/termidesk-vdi/termidesk.conf).

Установка, настройка СУБД PostgreSQL и RabbitMQ

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

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

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

Процесс установки первого узла с «Универсальным диспетчером» аналогичен комплексной установке Termidesk VDI. В процессе установки следует выбрать роли: «Портал администратора (ADMIN)», «Портал пользователя (USER)» и «Менеджер рабочих мест (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/).

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

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

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

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

Стандартная распределенная установка

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

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

Описание применимо к ферме 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
Рисунок 21. Схема стандартной распределенной установки
image
Рисунок 22. Схема стандартной распределенной установки при наличии лицензии Termidesk Connect

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

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

«Универсальный диспетчер» №1 с ролью «Портал универсальный»

disp1.termidesk.local

«Универсальный диспетчер 1»

«Универсальный диспетчер» №2 с ролью «Портал универсальный»

disp2.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. При установке следует учесть, что в БД должны отсутствовать записи (необходимо использовать чистую БД);

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

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

  • устанавливаются и настраиваются «Шлюзы»;

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

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

Установка, настройка СУБД PostgreSQL и RabbitMQ

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

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

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

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

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

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

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

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

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

Установка в режиме ЗПС

Замкнутая программная среда (ЗПС) является средством повышения безопасности ОС путем контроля целостности (неизменности) файлов.

Механизм контроля реализован в виде невыгружаемого модуля ядра ОС Astra Linux Special Edition (модуль digsig_verif), выполняющего проверку электронной цифровой подписи файлов (ЭЦП).

Перед установкой компонентов Termidesk VDI необходимо установить пакет termidesk-digsig-keys, для этого:

  • подключить репозиторий Termidesk VDI или получить отдельный пакет termidesk-digsig-keys из репозитория;

  • выполнить установку с использованием репозитория:

sudo apt -y install termidesk-digsig-keys
  • либо выполнить установку из deb-пакета:

sudo apt install -y /home/user/termidesk-digsig-keys-XXXXXX_amd64.deb

где:

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

/home/user/termidesk-digsig-keys-XXXXXX_amd64.deb - расположение пакета termidesk-digsig-keys-XXXXXX_amd64.deb.

  • перезагрузить ОС:

sudo reboot
  • выполнить установку компонента Termidesk VDI.

Для ЗПС может быть активирован режим проверки встроенной ЭЦП в расширенных атрибутах (DIGSIG_XATTR_MODE). В этом случае потребуется подписать файлы, которые будут проходить проверку, имеющимися в организации ключами. Информация о процессе подписи и активации механизма проверки встроенной ЭЦП в расширенных атрибутах приведена в справочном центре Astra Linux: https://wiki.astralinux.ru/pages/viewpage.action?pageId=41190634.

Постановка Termidesk VDI на контроль целостности

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

Для контроля целостности используются встроенные в ОС Astra Linux Special Edition программные средства на основе Another File Integrity Checker, представленного пакетом afick.

Настройка регламентного контроля целостности выполняется в конфигурационном файле /etc/afick.conf.

Настройку следует производить только после окончательного внедрения Termidesk VDI, поскольку с файлов конфигурации и исполняемых файлов будут сняты эталонные контрольные суммы.

Для постановки на контроль целостности компонента «Универсальный диспетчер» необходимо добавить в конфигурационный файл /etc/afick.conf строки:

/etc/default/termidesk-vdi PARSEC
/etc/logrotate.d/termidesk.local PARSEC
/etc/opt/termidesk-vdi PARSEC
/etc/systemd/system/multi-user.target.wants/termidesk-vdi.service PARSEC
/opt/termidesk PARSEC
/usr/lib/systemd/system/termidesk-celery-beat.service PARSEC
/usr/lib/systemd/system/termidesk-celery-worker.service PARSEC
/usr/lib/systemd/system/termidesk-vdi.service PARSEC
/usr/lib/udev/rules.d/99-termidesk-vdi.rules PARSEC
/usr/share/doc/termidesk-vdi PARSEC
/var/opt/termidesk-vdi PARSEC

#Репозиторий Termidesk
/var/repos/ PARSEC

Для постановки на контроль целостности компонента «Менеджер рабочих мест» необходимо добавить в конфигурационный файл /etc/afick.conf следующие строки:

/etc/default/termidesk-vdi PARSEC
/etc/logrotate.d/termidesk.local PARSEC
/etc/opt/termidesk-vdi PARSEC
/etc/systemd/system/multi-user.target.wants/termidesk-celery-beat.service PARSEC
/etc/systemd/system/multi-user.target.wants/termidesk-celery-worker.service PARSEC
/opt/termidesk PARSEC
/usr/lib/systemd/system/termidesk-celery-beat.service PARSEC
/usr/lib/systemd/system/termidesk-celery-worker.service PARSEC
/usr/lib/systemd/system/termidesk-vdi.service PARSEC
/usr/lib/udev/rules.d/99-termidesk-vdi.rules PARSEC
/usr/share/doc/termidesk-vdi PARSEC
/var/opt/termidesk-vdi PARSEC

#Репозиторий Termidesk
/var/repos/ PARSEC

Для снятия эталонных значений контрольных сумм используется команда:

afick -i

Для проверки соответствия контрольных сумм эталонным значениям автоматически создаются задания в системном планировщике заданий cron.

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

afick -k
В случае отсутствия по какой-либо причине исполняемых фалов *.рус, они будут повторно сгенерированы при перезапуске сервера Python. В этом случае нужно повторно проинициализировать средство регламентного контроля целостности afick.

Комплексное обновление Termidesk

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

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

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

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

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

Комплексное обновление подразумевает, что компоненты «Универсальный диспетчер», «Менеджер рабочих мест» были установлены на одном узле, и ранее при установке были выбраны роли:

  • «Портал администратора»;

  • «Портал пользователя» (опционально);

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

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

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

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

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

Если после удаления Termidesk VDI (удаление БД при этом не производилось) возникла необходимость повторной установки программного комплекса, то после инсталляции может понадобиться снова ввести данные для доступа (пароль, токен доступа) в поставщике ресурсов.

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

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

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

sudo systemctl stop termidesk-vdi termidesk-celery-beat termidesk-celery-worker
  • выполнить резервное копирование БД:

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

Где:

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

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

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

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

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

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

Для комплексного обновления Termidesk VDI нужно:

  • убедиться, что службы Termidesk VDI были ранее остановлены;

  • удалить кеш файла ответов debconf командами:

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

где:

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

  • подключить репозиторий Termidesk VDI;

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

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

      sudo pdpl-user -i 0 termideskdb
    • предоставить пользователю 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];

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

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

Если нужно выполнить обновление без подключения репозитория (при наличии deb-пакета) следует выполнить:

sudo apt install -y <путь к deb-пакету>

В случае, если при обновлении появляется сообщение о неразрешенных зависимостях, следует выполнить:

sudo apt install -f

Где:

-f - ключ, указывающий, что нужно исправить зависимости пакетов.

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

  • проверить состояние служб Termidesk VDI:

sudo systemctl -a | grep termidesk

где:

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

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

  • проверить доступность веб-интерфейса Termidesk VDI.

В процессе обновления будет выполнена настройка для работы в режиме мандатного контроля целостности и мандатного разграничения доступа:

  • установлена метка 0 для пользователя termidesk и права на чтение файла с меткой пользователю postgres, если такой есть в ОС и метка ещё не устанавливалась. Если метка ранее была установлена, то она не изменится и не сбросится, права на файл с меткой не будут установлены;

  • установлена метка 0 для пользователя, подключающегося к СУБД, и права на чтение файла с меткой пользователю postgres, если такой есть в ОС и метка ещё не устанавливалась. Если метка ранее была установлена, то она не изменится и не сбросится, права на файл с меткой не будут установлены.

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

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

Описание применимо к ферме Termidesk VDI, установленной в распределенной конфигурации. Общая последовательность действий приведена на рисунке (см. рисунок Последовательность обновления распределенной конфигурации фермы Termidesk VDI).

Если в инфраструктуре Termidesk VDI используется портал «Агрегатор», то процесс обновления нужно начинать с него.

Во время обновления распределенной или отказоустойчивой конфигурации установки:

  • изменение политик нужно проводить после обновления всех узлов Termidesk VDI;

  • изменение системных параметров нужно проводить после обновления всех узлов Termidesk VDI.

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

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

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

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

Во время обновления возможна временная неработоспособность функции автоматического входа пользователя в гостевую ОС ВМ, пока не будет обновлен последний узел с «Универсальным диспетчером».

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

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

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

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

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

На схеме:

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

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

Если планируется добавить новый узел с «Универсальным диспетчером», то любой новый узел будет иметь свой IP-адрес (или FQDN). В этом случае все компоненты «Агента» должны получить новый адрес для регистрации в Termidesk VDI.

Если в файлы конфигурации и запуска Termidesk VDI (/lib/systemd/system/termidesk-*) вручную были внесены какие-либо изменения, то необходимо выполнить резервное копирование данных файлов, поскольку эти изменения при обновлении сбрасываются до значений по умолчанию.

Обновление выполняется с приостановкой обслуживания пользователей!

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

  • Шаг 0. Проверить наличие лицензии на поддержку новой версии Termidesk VDI;

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

  • Шаг 2. Все пользователи должны отключиться от фондов РМ. Нужно дождаться завершения работы пользователей. Затем:

    • через веб-интерфейс «Портал администратора» перевести все фонды РМ в режим техобслуживания;

    • выключить все терминальные серверы, которые были подключены в Termidesk VDI как поставщики ресурсов;

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

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

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

  • Шаг 6. Обновляются оставшиеся «Менеджеры рабочих мест». На обновленном «Менеджере рабочих мест» восстанавливаются RSA-ключи из резервной копии, созданной на Шаге 4;

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

  • Шаг 8. По завершении обновления ВСЕХ узлов список балансировки восстанавливается до исходного. Проверяется доступность графического интерфейса Termidesk VDI сначала обращением на IP-адрес каждого из «Универсальных диспетчеров», затем обращением на IP-адрес балансировщика нагрузки;

  • Шаг 9. После выполнения обновления узлов:

    • обновить компоненты в гостевых ОС РМ (в базовом ВРМ - «золотом образе» или в ОС терминального сервера) в соответствии с документацией на них:

      • «Агент виртуального рабочего места»;

      • «Агент виртуальных смарт-карт»;

      • «Видеоагент»;

      • «Сессионный агент»;

      • STAL (если используется);

      • TERA (если используется);

    • выполнить новую публикацию в фондах РМ, если публикация применима к ним (для фондов с терминальными серверами публикация не выполняется).

Описание каждого шага приведено ниже.

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

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

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

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

Здесь и далее примеры IP-адресов приведены в соответствии с RFC 5737. Указанные IP-адреса должны быть заменены на актуальные, используемые согласно схеме адресации, принятой в инфраструктуре организации.

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

upstream daas-upstream-ws {
 least_conn;
     server 192.0.2.30;
     server 192.0.2.31;
     server 192.0.2.32;
 }

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

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

upstream daas-upstream-ws {
 least_conn;
     # server 192.0.2.30;
     # server 192.0.2.31;
     # server 192.0.2.32;
 }

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

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

sudo systemctl restart nginx

Шаг 2. Перевод фондов РМ в режим техобслуживания

Для продолжения обновления нужно дождаться отключения пользователей от фондов РМ.

Затем:

  • через веб-интерфейс «Портал администратора» перевести все фонды РМ в режим техобслуживания. Для этого перейти «Рабочие места - Фонды» и нажать экранную кнопку [Техобслуживание] с выбором из выпадающего списка значения «Включить». Подтвердить включение режима;

  • выключить каждый узел терминального сервера, который подключен к Termidesk VDI как поставщик ресурсов.

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

При отсутствии ранее установленного RabbitMQ выполняется его установка в соответствии с подразделом Подготовка среды функционирования.

Предполагается, что СУБД установлена на узле 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

Шаг 4.Резервное копирование 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 - путь, куда будет скопирован каталог.

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

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

  • отредактировать файл /etc/opt/termidesk-vdi/termidesk.conf и задать значение для параметра METRICS_ACCESS_KEY, если оно не задано. Рекомендуется использовать одинаковое значение параметра 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
  • в диалоговом окне псевдографического интерфейса инсталлятора выбрать режим работы ПО «Диспетчер».

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

Шаг 7. Обновление «Универсальных диспетчеров»

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

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

Корректировка файла /etc/apache2/apache2.conf при обновлении не производится.
  • остановить службу 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
  • в диалоговом окне псевдографического интерфейса инсталлятора выбирается режим работы «Диспетчер», роль «Портал администратора» и/или «Портал пользователя» в зависимости от ранее установленной роли.

Далее выполнить копирование сохраненных ранее RSA-ключей на узлы с обновленными «Универсальными диспетчерами».

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

sudo reboot

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

sudo systemctl -a | grep termidesk

Где:

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

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

Проверить доступность веб-порталов Termidesk VDI через веб-браузер.

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

По завершении обновления ВСЕХ узлов фермы Termidesk VDI список балансировки на ВСЕХ балансировщиках восстанавливается до исходного.

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

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

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

sudo systemctl restart nginx

Выполнить проверку доступности веб-портала Termidesk VDI через веб-браузер сначала обращением на IP-адрес каждого из «Универсальных диспетчеров» (или «Шлюзов»), затем обращением на IP-адрес балансировщика нагрузки.

Шаг 9. Обновление компонентов в ОС РМ и новая публикация

После выполнения обновления ВСЕХ узлов:

  • обновляются компоненты в ОС РМ (в базовом ВРМ или в ОС терминального сервера) в соответствии с документацией на них:

    • «Агент виртуального рабочего места»;

    • «Агент виртуальных смарт-карт»;

    • «Видеоагент»;

    • «Сессионный агент»;

    • STAL (если используется);

    • TERA (если используется);

  • выполняется новая публикация в фондах РМ, если публикация применима к ним.

Для фондов терминальных серверов публикация не выполняется: достаточно того, чтобы узел терминального сервера был включен.

Удаление 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 - ключ для рекурсивного действия. Будут удалены все вложенные подкаталоги.