ОС Astra Linux Special Edition
Неавтоматизированная комплексная установка Termidesk
Для установки фермы Termidesk с использованием псевдографического интерфейса нужно:
-
подготовить среду функционирования (см. подраздел Подготовка среды функционирования);
-
подключить репозиторий Termidesk;
-
установить Termidesk:
sudo apt install termidesk-vdi
|
При установке пакета Одним из параметров службы Рекомендуется также установить пакеты
|
|
В зависимостях пакета установки
Перед обновлением ОС или службы Начиная с Termidesk версии 6.1 компонент «Шлюз» (пакет |
В процессе установки нужно:
| Для переключения между экранными кнопками [Ок] и [Отмена] в псевдографическом интерфейсе используется клавиша <Tab>. |
-
ввести домен по умолчанию для работы Kerberos-аутентификации. Ввод домена можно пропустить, оставив поле ввода пустым и нажав экранную кнопку [Ok] (см. рисунок Запрос настроек по умолчанию для Kerberos-аутентификации);
-
ознакомиться с лицензионным соглашением и нажать экранную кнопку [Далее] (см. рисунок Лицензионное соглашение);
-
нажать экранную кнопку [Да] для принятия условий лицензионного соглашения и продолжения установки или экранную кнопку [Нет] в случае отказа, при этом установка прервется (см. рисунок Принятие условий лицензионного соглашения);
-
далее настроить расположение каталогов для файлов Termidesk (см. рисунок Настройка расположения каталогов):
-
«Расположения конфигурации»: каталог, в котором будет расположен файл
termidesk.conf; -
«Хранения журналов»: каталог, в котором будут расположены файлы журналов;
-
«Шаблонов syslog/logrotate»: каталог, в котором будут распололжены шаблоны для настройки регистрации событий и журналирования;
Каталог, в котором будут расположены файлы Termidesk, должен обладать свойствами:
-
права на каталог:
rwxr-x---(750); -
владелец каталога:
root:termidesk.
-
-
-
далее выбрать режим работы (см. рисунок Выбор режима работы ПО):
-
«Диспетчер»: установка фермы «Универсального диспетчера»;
-
«Агрегатор»: установка фермы «Агрегатора»;
Установка «Агрегатора» должна производиться на отдельном узле, отличном от «Диспетчера».
-
-
затем выбрать устанавливаемую роль узла:
При комплексной установке необходимо выбрать роли:
-
«Портал администратора»;
-
«Портал пользователя»;
-
«Менеджер рабочих мест».
Если не выбрать ни одной роли, то ни одна служба Termidesk запущена не будет.
-
«Портал администратора (ADMIN)»: установится «Портал администратора», предоставляющий интерфейс для управления Termidesk и интерфейс Swagger для доступа к ограниченному списку модулей документации по командам REST API. После установки будет запущена служба
termidesk-vdi; -
«Портал пользователя (USER)»: установится «Портал пользователя», предоставляющий пользовательский интерфейс Termidesk и интерфейс Swagger для доступа к ограниченному списку модулей документации по командам REST API. Интерфейс управления Termidesk будет недоступен. После установки будет запущена служба
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». По умолчанию для заполнения параметра используется заданный в системе |
-
далее выбрать способ хранения паролей подключения к СУБД и брокеру сообщений (см. рисунок Выбор способа хранения паролей);
Для всех узлов фермы Termidesk должен выбираться единый способ хранения и единое хранилище (в случае выбора способа «hvac»).
-
«config» (по умолчанию) - пароли будут храниться в преобразованном виде в файле
/etc/opt/termidesk-vdi/termidesk.conf; -
«hvac» (рекомендуемый способ для безопасного хранения) - для хранения паролей будет использоваться хранилище паролей OpenBao или Hashicorp Vault (хранилище должно быть заранее создано и настроено). Подробная информация по этому способу хранения паролей приведена в подразделе Хранение чувствительной информации с выбранным способом хранения «hvac» документа СЛЕТ.10001-01 90 02 «Руководство администратора. Настройка программного комплекса»;
-
«openbao» (экспериментальный) - для хранения паролей будет использоваться хранилище паролей OpenBao (хранилище должно быть заранее создано и настроено). При этом пароли располагаются внутри хранилища, имена контейнеров хранения генерируются автоматически;
-
-
при выборе хранения паролей «openbao» или «hvac» нужно задать параметры подключения к хранилищу и параметры, настроенные непосредственно на хранилище (см. рисунок Настройка подключения к OpenBao):
-
«URL хранилища» - IP-адрес или FQDN узла и порт с установленным хранилищем OpenBao. Формат:
http://<IP-адрес>:8200илиhttp://<FQDN>:8200;Хранилище паролей OpenBao должно быть реализовано в отказоустойчивом варианте, иначе Termidesk не будет работать в период простоя узлов OpenBao.
-
«Версия API OpenBao» - установленная версия API на OpenBao (
1или2); -
«Путь к токену доступа к хранилищу» - путь к файлу с токеном доступа к OpenBao;
-
«Роль доступа Termidesk (AppRole)» - роль, настроенная на OpenBao, имеющая доступ к логинам и паролям;
-
«ИД роли доступа (RoleID)» - идентификатор роли доступа;
-
«Путь к логину/паролю СУБД» - путь, настроенный на OpenBao для хранения логина и пароля СУБД;
-
«Путь к логинам/паролям RabbitMQ» - путь, настроенный на OpenBao для хранения логинов и паролей брокера сообщений;
-
«Путь к другим секретам Termidesk» - путь, настроенный на OpenBao для хранения других логинов и паролей Termidesk;
-
«Время кеширования паролей, с» - время (в секундах) хранения пароля, полученного от OpenBao, во внутренней памяти;
-
«Период проверки токена доступа, с» - интервал (в секундах) проверки актуальности токена;
-
«Обновлять токен до его устар., с» - оставшееся время (в секундах) актуальности токена, по достижении которого он будет обновлен;
-
«Время жизни токена, с» - время актуальности (в минутах) одноразового токена;
-
«Пространство имён» - пространство имени, заданного на OpenBao;
-
-
подключение может выполняться по протоколу HTTPS, если OpenBao настроен соответствующим образом. Для подключения по HTTPS нужно нажать экранную кнопку [Сертификаты] и определить пути (см. рисунок Конфигурация сертификатов и ключей) к сертификатам и ключам (параметры «Сертификат OpenBao начального mTLS», «Секр. ключ OpenBao начального mTLS», «Серт. промеж. ЦС OpenBao нач. mTLS»);
|
Доступный список сертификатов приведен в подразделе Утилита Справочная информация по работе с диалогом добавления сертификата доступна по экранной кнопке [Справка] при выборе нужного пункта из списка. |
|
Если заданы сертификаты и ключ для подключения по mTLS, то будет выведено соответствующее предупреждение на этапе задания параметров подключения к СУБД или брокеру сообщений (при ответе «Нет» произойдет возврат к редактированию параметров подключения к узлу):
При невыполнении условий работа mTLS не гарантируется. |
-
после настройки способа хранения паролей нужно задать ключ DJANGO. Значение создается автоматически, но при необходимости можно сформировать новое значение, нажав экранную кнопку [Обновить]. Поддерживается задание пути в хранилище чувствительной информации, если ключ DJANGO расположен в нем. Для продолжения установки нажать экранную кнопку [Далее];
-
далее выбрать протокол, который будет использоваться при подключении к серверу СУБД (см. рисунок Выбор протокола для подключения к СУБД):
-
при выборе значения «Открытый, без защиты» защищенное соединение при подключении к серверу СУБД использоваться не будет;
-
при выборе защищенного подключения нужно нажать экранную кнопку [Сертификаты] и определить пути к сертификатам и ключам (параметры «Сертификат PostgreSQL mTLS», «Секр. ключ PostgreSQL mTLS», «Серт. промеж. ЦС PostgreSQL mTLS»);
-
-
для продолжения установки нажать экранную кнопку [Далее];
-
выбрать тип установки СУБД (см. рисунок Выбор типа установки СУБД):
-
«Отдельно стоящий сервер»: подключение производится к отдельному серверу СУБД;
-
«Кластер СУБД»: подключение производится к кластеру СУБД;
-
|
При выборе типа установки СУБД «Кластер СУБД» можно задать до трех узлов СУБД, к которым будет подключаться Termidesk. При этом предполагается, что порт, имя БД, имя пользователя и его пароль идентичны для всех узлов. |
-
заполнить параметры подключения к СУБД (см. рисунок Ввод параметров подключения к СУБД):
-
«Адрес»: IP-адрес или FQDN узла с установленной СУБД (в случае локальной установки
127.0.0.1); -
«Адрес (узел 2)»: IP-адрес или FQDN дополнительного узла СУБД (необязательный параметр, при необходимости может быть задан только для кластера СУБД);
-
«Адрес (узел 3)»: IP-адрес или FQDN дополнительного узла СУБД (необязательный параметр, при необходимости может быть задан только для кластера СУБД);
-
«Порт»: номер порта, используемого для соединения с сервером СУБД (стандартный порт
5432); -
«Имя базы данных»: наименование БД (
termidesk, параметр задавался при создании БД); -
«Имя пользователя»: имя пользователя БД для подключения к ней (
termideskdb, параметр задавался при создании БД); -
«Пароль»: пароль для подключения к БД (
ksedimret, параметр задавался при создании БД); -
«Время жизни подключения, с»: максимально допустимое время (в секундах) существования одного подключения к БД;
-
«Кол-во задач на подключение»: количество фоновых задач, которое может быть выполнено в рамках одного подключения к БД;
-
«Таймаут подключения к СУБД, с»: время ожидания (в секундах) подключения к БД;
-
|
Если для хранения паролей был выбран режим «hvac», то имя пользователя и пароль не задаются в этом окне, т.к. значения для них берутся из хранилища. |
-
нажать экранную кнопку [Тест] для проверки подключения, ознакомиться с результатом тестирования подключения и для продолжения установки нажать экранную кнопку [Далее];
|
Тест подключения к СУБД доступен и в режиме mTlS, если:
|
-
выбрать протокол, который будет использоваться при подключении к брокеру сообщений (см. рисунок Выбор протокола для подключения к брокеру сообщений):
-
при выборе значения «Открытый, без защиты» защищенное соединение при подключении использоваться не будет;
-
при выборе защищенного подключения нужно нажать экранную кнопку [Сертификаты] и определить пути к сертификатам и ключам (параметры «Сертификат RabbitMQ mTLS», «Секр. ключ RabbitMQ mTLS», «Серт. ЦС RabbitMQ mTLS»);
-
|
В Termidesk версии 6.1 установка «Брокера сообщений TermideskMQ» поддерживается в экспериментальном режиме (установка происходит на этапе выбора ролей узла далее). Одновременное использование RabbitMQ и «Брокера сообщений TermideskMQ» в рамках одной фермы не поддерживается. Рекомендуется удалить RabbitMQ или отключить службу |
-
настроить подключение к брокеру сообщений. Для этого выбрать в следующем окне пункт «Empty» и нажать экранную кнопку [Выбрать] (см. рисунок Экранная форма начала настройки подключения к брокеру сообщений). Необходимо задать хотя бы одно подключение. Если не будет задано ни одно подключение, то при нажатии на кнопку [Далее] произойдет возврат в диалог настройки подключений;
-
выполнить настройку подключения к брокеру сообщений, заполнив параметры (см. рисунок Настройка подключения к брокеру сообщений):
Если для хранения паролей был выбран режим «hvac», то имя пользователя и пароль не задаются в этом окне, т.к. значения для них берутся из хранилища.
-
«Протокол (amqp/tmqp)»: протокол подключения к брокеру сообщений. Следует назначить: «amqp» для RabbitMQ, «tmqp» для «Брокера сообщений TermideskMQ»;
-
«Адрес»: IP-адрес или FQDN узла с установленным брокером сообщений (в случае локальной установки
127.0.0.1); -
«Порт»: номер порта, используемого для соединения с брокером сообщения (стандартный порт: 5672 для RabbitMQ, 5555 для «Брокера сообщений TermideskMQ»);
-
«Виртуальный хост»: виртуальный узел, к которому будет производиться подключение (
termidesk); -
«Имя пользователя»: имя пользователя для подключения (
termidesk); -
«Пароль»: пароль для подключения (
ksedimret);
-
-
нажать экранную кнопку [ОК] для продолжения установки;
-
в следующем окне отобразится информация о настроенном подключении (см. рисунок Отображение параметров подключения к брокеру сообщений). При необходимости можно добавить до трех экземпляров брокера сообщений для подключения, выбрав пустые строки «Empty» и повторив ввод параметров подключения. Для продолжения установки следует нажать экранную кнопку [Далее];
|
Если для хранения паролей был выбран режим «hvac», то имя пользователя будет скрыто. |
-
задать токен доступа к службе проверки состояния узла. Значение создается автоматически, но при необходимости можно сформировать новое значение, нажав экранную кнопку [Обновить]. Поддерживается задание пути в хранилище чувствительной информации, если токен расположен в нем. Для продолжения установки нажать экранную кнопку [Далее];
-
задать токен доступа к службе получения метрик узла. Значение создается автоматически, но при необходимости можно сформировать новое значение, нажав экранную кнопку [Обновить]. Поддерживается задание пути в хранилище чувствительной информации, если токен расположен в нем. Для продолжения установки нажать экранную кнопку [Далее];
-
выбрать язык графического интерфейса, который будет использоваться в Termidesk по умолчанию (см. рисунок Выбор языка графического интерфейса Termidesk). Для продолжения установки нажать экранную кнопку [Далее].
После установки Termidesk необходимо:
-
скорректировать файл конфигурации веб-сервера
/etc/apache2/apache2.conf. Для этого нужно найти и раскомментировать строку с параметромAstraMode, далее присвоить данному параметру значениеoff, точно соблюдая отступы и пробелы в файле:
# Astra security mode
#
AstraMode off
-
затем перезапустить веб-сервер:
sudo systemctl restart apache2
-
если при установке было задано использование хранилище паролей, то необходимо выполнить запуск служб Termidesk вручную:
sudo systemctl start termidesk-vdi.service termidesk-celery-beat.service termidesk-celery-worker.service
-
если в инфраструктуре Termidesk будет использоваться портал «Агрегатор» , нужно обязательно задать на узле компонента «Универсальный диспетчер» («Портал пользователя» или «Портал универсальный») сертификат для расшифровки 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 следует убедиться, что в БД отсутствуют записи (необходимо использовать чистую БД). |
|
Описание приведено для фермы Termidesk. Для установки портала «Агрегатор» следует использовать другую конфигурацию, приведенную в подразделе Автоматизированная установка «Агрегатора» документа СЛЕТ.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'
-
создать каталог
/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 будет использоваться портал «Агрегатор» («Агрегатор администратора» и/или «Агрегатор пользователя»), нужно обязательно задать на узле компонента «Универсальный диспетчер» фермы Termidesk («Портал пользователя» или «Портал универсальный») сертификат для расшифровки JWT-токена. Сертификат может быть задан через файл |
После установки параметры могут быть изменены:
-
через файл
termidesk.conf; -
через утилиту
termidesk-config.
Минимальная распределенная установка
Основные принципы минимальной распределенной установки
Минимальная распределенная установка компонентов выполняется на отдельные серверы или ВМ.
| Описание применимо к ферме Termidesk. |
|
Реализация отказоустойчивости инфраструктурных сервисов выполняется организацией в соответствии с требованиями к инфраструктуре. При использовании внешней по отношению к Termidesk СУБД, следует установить брокер сообщений RabbitMQ на узел «Менеджера рабочих мест» или на отдельный узел. Начиная с Termidesk версии 6.1 компонент «Шлюз» (пакет Инструкции по установке и настройке доступны по ссылкам: Инструкция по настройке Шлюза для Termidesk VDI (первый способ), Инструкция по настройке Шлюза для Termidesk VDI (второй способ). |
В минимальном варианте распределенной установки устанавливаются компоненты:
-
«Универсальный диспетчер» (служба
termidesk-vdi); -
«Менеджер рабочих мест» (службы
termidesk-celery-beat,termidesk-celery-worker).
Перечень условий для распределенной установки:
-
брокер сообщений RabbitMQ устанавливается на одном узле с СУБД (в общем случае этот компонент может устанавливаться на отдельный узел, но в рамках настоящей процедуры данный вариант не рассматривается);
-
на всех узлах, предназначенных для установки компонентов, настроены статические IP-адреса;
-
на всех узлах настроена синхронизация времени от единого источника.
|
Реализация отказоустойчивости инфраструктурных сервисов выполняется организацией в соответствии с требованиями к инфраструктуре. При использовании внешней по отношению к Termidesk СУБД, следует установить брокер сообщений RabbitMQ на узел «Менеджера рабочих мест» или на отдельный узел. |
Упрощенная общая схема при минимальной распределенной установке Termidesk приведена на рисунке (см. рисунок Схема минимальной распределенной установки).
Схема минимальной распределенной установки с Termidesk Connect приведена на рисунке (см. рисунок Схема минимальной распределенной установки при наличии лицензии Termidesk Connect).
Особенности:
-
для реализации функционала «Шлюза» используется лицензия Termidesk Connect Basic;
-
для реализации функционала балансировщика используется лицензия Termidesk Connect. При отсутствии лицензии допускается использование сторонних балансировщиков нагрузки.
Перечень обозначенных на схемах компонентов приведен в таблице (см. таблицу Перечень компонентов схемы минимальной распределенной установки).
| Компонент | FQDN | ^Подпись на схеме |
|---|---|---|
«Универсальный диспетчер» №1 с ролями «Портал универсальный» и «Менеджер рабочих мест» |
|
«Универсальный диспетчер 1» |
«Универсальный диспетчер» №2 с ролями «Портал универсальный» и «Менеджер рабочих мест» |
|
«Универсальный диспетчер 2» |
Termidesk Connect (лицензия «Шлюз») №1 |
|
«Termidesk Connect (Шлюз) 1» |
Termidesk Connect (лицензия «Шлюз») №2 |
|
«Termidesk Connect (Шлюз) 2» |
Termidesk Connect №1 |
|
«Termidesk Connect 1» |
Termidesk Connect №2 |
|
«Termidesk Connect 2» |
База данных c брокером сообщений RabbitMQ |
|
«Сервер СУБД и RabbitMQ» |
Распределенная установка проводится в следующей последовательности:
-
на одном узле устанавливаются СУБД и RabbitMQ. При установке следует учесть, что в БД должны отсутствовать записи (необходимо использовать чистую БД);
-
устанавливается первый (эталонный) узел с «Универсальным диспетчером». При установке необходимо выбрать роли «Портал универсальный» (роль активируется при одновременном выборе ролей «Портал администратора» и «Портал пользователя» в диалоговом окне псевдографического интерфейса инсталлятора) и «Менеджер рабочих мест».
-
устанавливаются остальные «Универсальные диспетчеры» с копированием файлов с эталонного узла;
-
устанавливаются и настраиваются «Шлюзы».
Заключительным этапом устанавливаются и настраиваются «Балансировщики нагрузки».
|
Настройки первого узла с «Универсальным диспетчером» Termidesk будут использоваться как эталонные для другого узла «Универсального диспетчера». Нужно скопировать каталог |
Установка, настройка СУБД 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. В процессе установки следует выбрать роли: «Портал администратора (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 версии 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 будет использоваться портал «Агрегатор» («Агрегатор администратора» и/или «Агрегатор пользователя»), нужно обязательно задать на узле компонента «Универсальный диспетчер» («Портал пользователя» или «Портал универсальный») сертификат для расшифровки JWT-токена. Сертификат может быть задан через файл /etc/opt/termidesk-vdi/termidesk.conf (параметры AGGREGATOR_JWT_SSL_CERT и AGGREGATOR_JWT_SSL_CERT_SECOND) или через утилиту termidesk-config.
После установки параметры могут быть изменены:
-
через файл
termidesk.conf; -
через утилиту
termidesk-config.
Стандартная распределенная установка
Основные принципы стандартной распределенной установки
В Termidesk предусмотрена распределенная установка компонентов на отдельные серверы или ВМ.
| Описание применимо к ферме Termidesk. |
|
Реализация отказоустойчивости инфраструктурных сервисов выполняется организацией в соответствии с требованиями к инфраструктуре. При использовании внешней по отношению к Termidesk СУБД, следует установить брокер сообщений RabbitMQ на узел «Менеджера рабочих мест» или на отдельный узел. Начиная с Termidesk версии 6.1 компонент «Шлюз» (пакет Инструкции по установке и настройке доступны по ссылкам: Инструкция по настройке Шлюза для Termidesk VDI (первый способ), Инструкция по настройке Шлюза для Termidesk VDI (второй способ). |
В распределенном варианте устанавливаются компоненты:
-
«Универсальный диспетчер» (служба
termidesk-vdi); -
«Менеджер рабочих мест» (службы
termidesk-celery-beat,termidesk-celery-worker).
Перечень условий для распределенной установки:
-
брокер сообщений RabbitMQ устанавливается на одном узле с СУБД (в общем случае этот компонент может устанавливаться на отдельный узел, но в рамках настоящей процедуры данный вариант не рассматривается);
-
на всех узлах, предназначенных для установки компонентов, настроены статические IP-адреса;
-
на всех узлах настроена синхронизация времени от единого источника.
Упрощенная общая схема при стандартной распределенной установке Termidesk приведена на рисунке (см. рисунок Схема стандартной распределенной установки).
Схема стандартной распределенной установки с Termidesk Connect приведена на рисунке (см. рисунок Схема стандартной распределенной установки при наличии лицензии Termidesk Connect).
Особенности:
-
для реализации функционала «Шлюза» используется лицензия Termidesk Connect Basic;
-
для реализации функционала балансировщика используется лицензия Termidesk Connect. При отсутствии лицензии допускается использование сторонних балансировщиков нагрузки.
Перечень обозначенных на схемах компонентов приведен в таблице (см. таблицу Перечень компонентов).
| Компонент | FQDN | Подпись на схеме |
|---|---|---|
«Универсальный диспетчер» №1 с ролью «Портал универсальный» |
|
«Универсальный диспетчер 1» |
«Универсальный диспетчер» №2 с ролью «Портал универсальный» |
|
«Универсальный диспетчер 2» |
Termidesk Connect (лицензия «Termidesk Connect Basic») №1 |
|
«Termidesk Connect (Шлюз) 1» |
Termidesk Connect (лицензия «Termidesk Connect Basic») №2 |
|
«Termidesk Connect (Шлюз) 2» |
«Менеджер рабочих мест» №1 |
|
«Менеджер рабочих мест 1» |
«Менеджер рабочих мест» №2 |
|
«Менеджер рабочих мест 2» |
Termidesk Connect №1 |
|
«Termidesk Connect 1» |
Termidesk Connect №2 |
|
«Termidesk Connect 2» |
База данных c брокером сообщений RabbitMQ |
|
«Сервер СУБД и 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, за исключением выбора только ролей «Портал администратора» и «Портал пользователя».
После установки передать каталог /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 версии 6.1 функционал «Шлюза» реализуется через продукт Termidesk Connect. Подробные сведения приведены в документации Termidesk Connect (доступ по ссылке: https://termidesk.ru/docs/).
Установка «Менеджеров рабочих мест»
Установка «Менеджеров рабочих мест» производится на два узла, работающих в режиме отказоустойчивой конфигурации, при которой оба узла активно обрабатывают трафик (конфигурация «Active - Active»), а отказ одного из них не нарушает работоспособность фермы Termidesk.
Установка компонента на первый узел проводится в следующей последовательности:
-
перемещается скопированный ранее каталог
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 будет использоваться портал «Агрегатор» («Агрегатор администратора» и/или «Агрегатор пользователя»), нужно обязательно задать на узле компонента «Универсальный диспетчер» («Портал пользователя» или «Портал универсальный») сертификат для расшифровки 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 необходимо установить пакет termidesk-digsig-keys, для этого:
-
подключить репозиторий Termidesk или получить отдельный пакет
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.
Для ЗПС может быть активирован режим проверки встроенной ЭЦП в расширенных атрибутах (DIGSIG_XATTR_MODE). В этом случае потребуется подписать файлы, которые будут проходить проверку, имеющимися в организации ключами. Информация о процессе подписи и активации механизма проверки встроенной ЭЦП в расширенных атрибутах приведена в справочном центре Astra Linux: https://wiki.astralinux.ru/pages/viewpage.action?pageId=41190634.
Постановка Termidesk на контроль целостности
После установки и настройки Termidesk необходимо поставить его на контроль целостности. В подразделе приведена процедура для компонентов «Универсальный диспетчер» и «Менеджер рабочих мест».
Для контроля целостности используются встроенные в ОС Astra Linux Special Edition программные средства на основе Another File Integrity Checker, представленного пакетом afick.
Настройка регламентного контроля целостности выполняется в конфигурационном файле /etc/afick.conf.
| Настройку следует производить только после окончательного внедрения Termidesk, поскольку с файлов конфигурации и исполняемых файлов будут сняты эталонные контрольные суммы. |
Для постановки на контроль целостности компонента «Универсальный диспетчер» необходимо добавить в конфигурационный файл /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 версии 6.1 компонент «Шлюз» (пакет Инструкции по установке и настройке доступны по ссылкам: Инструкция по настройке Шлюза для Termidesk VDI (первый способ), Инструкция по настройке Шлюза для Termidesk VDI (второй способ). Особенности:
|
| Описание применимо к ферме Termidesk. |
Комплексное обновление подразумевает, что компоненты «Универсальный диспетчер», «Менеджер рабочих мест» были установлены на одном узле, и ранее при установке были выбраны роли:
-
«Портал администратора»;
-
«Портал пользователя» (опционально);
-
«Менеджер рабочих мест».
|
Обновление Termidesk должно осуществляться с соблюдением условий:
|
|
Если после удаления Termidesk (удаление БД при этом не производилось) возникла необходимость повторной установки программного комплекса, то после инсталляции может понадобиться снова ввести данные для доступа (пароль, токен доступа) в поставщике ресурсов. Если в файлы запуска Termidesk вручную были внесены какие-либо изменения, то эти изменения при обновлении не сохраняются. |
Перед любым обновлением Termidesk рекомендуется выполнить резервное копирование БД:
-
остановить службы Termidesk:
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 нужно:
-
убедиться, что службы Termidesk были ранее остановлены;
-
удалить кеш файла ответов
debconfкомандами:
sudo rm -f /var/cache/debconf/config.dat
sudo rm -f /var/cache/debconf/config.dat-old
где:
-f - ключ игнорирования несуществующих файлов;
-
подключить репозиторий Termidesk;
-
если ОС 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 нажать экранную кнопку [OK];
|
Диалоги настройки параметров отображаются в том случае, если ранее они не были заданы. |
Если нужно выполнить обновление без подключения репозитория (при наличии deb-пакета) следует выполнить:
sudo apt install -y <путь к deb-пакету>
В случае, если при обновлении появляется сообщение о неразрешенных зависимостях, следует выполнить:
sudo apt install -f
Где:
-f - ключ, указывающий, что нужно исправить зависимости пакетов.
После завершения обновления нужно:
-
проверить состояние служб Termidesk:
sudo systemctl -a | grep termidesk
где:
-a - ключ для вывода списка служб;
grep - утилита для поиска текста в выводе предыдущей команды;
-
проверить доступность веб-интерфейса Termidesk VDI.
В процессе обновления будет выполнена настройка для работы в режиме мандатного контроля целостности и мандатного разграничения доступа:
-
установлена метка
0для пользователяtermideskи права на чтение файла с меткой пользователюpostgres, если такой есть в ОС и метка ещё не устанавливалась. Если метка ранее была установлена, то она не изменится и не сбросится, права на файл с меткой не будут установлены; -
установлена метка
0для пользователя, подключающегося к СУБД, и права на чтение файла с меткой пользователюpostgres, если такой есть в ОС и метка ещё не устанавливалась. Если метка ранее была установлена, то она не изменится и не сбросится, права на файл с меткой не будут установлены.
Обновление для распределенной конфигурации установки
Общая концепция обновления
Описание применимо к ферме Termidesk, установленной в распределенной конфигурации. Общая последовательность действий приведена на рисунке (см. рисунок Последовательность обновления распределенной конфигурации фермы Termidesk).
Если в инфраструктуре Termidesk используется портал «Агрегатор», то процесс обновления нужно начинать с него.
|
Во время обновления распределенной или отказоустойчивой конфигурации установки:
Обновление Termidesk должно осуществляться с соблюдением условий:
Во время обновления возможна временная неработоспособность функции автоматического входа пользователя в гостевую ОС ВМ, пока не будет обновлен последний узел с «Универсальным диспетчером». Начиная с Termidesk версии 6.1 компонент «Шлюз» (пакет Инструкции по установке и настройке доступны по ссылкам: Инструкция по настройке Шлюза для Termidesk VDI (первый способ), Инструкция по настройке Шлюза для Termidesk VDI (второй способ). Особенности:
|
На схеме:
-
режим совместимости - режим, характеризующийся отличием в версиях между любыми компонентами фермы Termidesk;
-
режим обновления - режим, характеризующийся наличием не обновленных «Универсальных диспетчеров» при уже обновленных записях БД. Становится ограничен в действиях «Портал администратора». Ферма Termidesk при этом должна работать с теми записями БД, которые есть на момент входа в этот режим.
| Если планируется добавить новый узел с «Универсальным диспетчером», то любой новый узел будет иметь свой IP-адрес (или FQDN). В этом случае все компоненты «Агента» должны получить новый адрес для регистрации в Termidesk. |
|
Если в файлы конфигурации и запуска Termidesk ( Обновление выполняется с приостановкой обслуживания пользователей! |
Последовательность обновления фермы Termidesk, установленной в распределенной отказоустойчивой конфигурации:
-
Шаг 0. Проверить наличие лицензии на поддержку новой версии Termidesk;
-
Шаг 1. На всех балансировщиках нагрузки, отвечающих за распределение подключений к «Шлюзам» и «Универсальным диспетчерам», из списка балансировки выводятся все компоненты: «Шлюзы» и «Универсальные диспетчеры»;
-
Шаг 2. Все пользователи должны отключиться от фондов РМ. Нужно дождаться завершения работы пользователей. Затем:
-
через веб-интерфейс «Портал администратора» перевести все фонды РМ в режим техобслуживания;
-
выключить все терминальные серверы, которые были подключены в Termidesk как поставщики ресурсов;
-
-
Шаг 3. На сервер с СУБД, либо на отдельно выделенный сервер, устанавливается и настраивается компонент RabbitMQ в случае, если ранее RabbitMQ не был установлен;
-
Шаг 4. Создается резервная копия RSA-ключей, расположенных в каталоге
/etc/opt/termidesk-vdi/wsproxy/; -
Шаг 5. Обновляется первый узел «Менеджера рабочих мест». Запуск служб выполняется автоматически. На обновленном «Менеджере рабочих мест» восстанавливаются RSA-ключи из резервной копии, созданной на Шаге 4. В этом процессе автоматически будут обновлены записи в БД;
-
Шаг 6. Обновляются оставшиеся «Менеджеры рабочих мест». На обновленном «Менеджере рабочих мест» восстанавливаются RSA-ключи из резервной копии, созданной на Шаге 4;
-
Шаг 7. Последовательно (по одному за раз) обновляются все «Универсальные диспетчеры» («Портал администратора», «Портал пользователя», «Портал универсальный»). Запуск служб выполняется автоматически. На обновленных «Универсальных диспетчерах» восстанавливаются RSA-ключи из резервных копий, созданных на Шаге 4. Узлы перезагружается;
-
Шаг 8. По завершении обновления ВСЕХ узлов список балансировки восстанавливается до исходного. Проверяется доступность графического интерфейса Termidesk сначала обращением на 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 как поставщик ресурсов.
Шаг 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:
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-ключей на узел с обновленным «Менеджером рабочих мест».
Шаг 6. Обновление оставшихся «Менеджеров рабочих мест»
Выполняется аналогично Шагу 5.
Шаг 7. Обновление «Универсальных диспетчеров»
Перед запуском процедуры обновления нужно:
-
отредактировать файл
/etc/opt/termidesk-vdi/termidesk.confи задать значение для параметраMETRICS_ACCESS_KEY,если оно не задано. Рекомендуется задать одинаковое значение параметраMETRICS_ACCESS_KEYдля всех узлов «Универсального диспетчера»;
Корректировка файла /etc/apache2/apache2.conf при обновлении не производится.
|
-
остановить службу Termidesk:
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 через веб-браузер.
Шаг 8. Восстановление конфигурации балансировщика нагрузки
По завершении обновления ВСЕХ узлов фермы Termidesk список балансировки на ВСЕХ балансировщиках восстанавливается до исходного.
Пример для балансировщика nginx:
-
ранее закомментированные строки нужно раскомментировать;
-
затем выполнить перезагрузку службы
nginxна каждом балансировщике:
sudo systemctl restart nginx
Выполнить проверку доступности веб-портала Termidesk через веб-браузер сначала обращением на 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 - ключ для рекурсивного действия. Будут удалены все вложенные подкаталоги.