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

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

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

Если в инфраструктуре Termidesk используется портал «Агрегатор», то процесс обновления нужно начинать с него (см. документ 90 08 «Руководство администратора. Установка и настройка портала «Агрегатор»).

Перед обновлением требуется выполнить переход на ОС из списка поддерживаемых для текущей версии Termidesk (см. подраздел Требования к программному обеспечению).

Перед обновлением требуется удалить:

  • фонды и шаблоны, созданные ранее для поставщика ресурсов «Static IP Machines»;
  • шаблоны РМ «Статичная ВМ» (для всех поставщиков ресурсов, ранее имевших эти шаблоны) и ассоциированные с ними фонды;
  • шаблоны, созданные ранее для поставщика ресурсов VMmanager. Если шаблоны не были удалены перед обновлением, то после него необходимо отредактировать существующие шаблоны и корректно задать значения новых параметров.

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

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

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

  • обновление выполняется последовательно, с установкой промежуточных версий релизов. Например, если сейчас установлена версия 5.0, то порядок обновления до 6.0.2 будет следующим: 5.0 - 5.1 - 5.1.1 - 6.0 - 6.0.2;
  • обновление выполняется операцией установки поверх предыдущей версии. В противном случае, если ранее Termidesk был удален без удаления БД, при повторной установке может возникнуть ряд ошибок;
  • после начала процедуры обновления запрещается производить любые операции с объектами на «Порталах» с предыдущими версиями Termidesk.

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

На схеме:

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

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

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

В случае с переходом на  ОС Astra Linux Special Edition 1.8 потребуется переустановка ОС и Termidesk.

Тогда для сохранения существующей БД нужно:

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

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

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

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

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

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

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

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

Шаг 5. На узлах с установленным «Менеджером рабочих мест», который работает в отказоустойчивой конфигурации в режиме «SLAVE», должен быть выполнен останов служб keepalived.

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

Шаг 6. Обновляется выбранный «Менеджер рабочих мест». Запуск служб выполняется автоматически. 

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

Шаг 8. Выполняется отключение служб keepalived. Узел перезагружается.

Шаг 9.  На узлах с установленным «Менеджером рабочих мест», который работает в отказоустойчивой конфигурации в режиме «MASTER», должен быть выполнен останов служб keepalived. Выполняются Шаги 5-8 для «Менеджера рабочих мест» режима «SLAVE».

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

Шаг 11. Обновляются все «Шлюзы». Запуск службы termidesk-gateway выполняется автоматически. 

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

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

  • обновить компоненты в гостевых ОС РМ (в базовом ВРМ - «золотом образе» или в ОС терминального сервера) в соответствии с документацией на них:
    • «Агент виртуального рабочего места»;
    • «Агент виртуальных смарт-карт»;
    • «Видеоагент»;
    • «Сессионный агент»;
    • STAL (если используется);
    • TERA (если используется); 
  • выполнить новую публикацию в фондах РМ, если публикация применима к ним (для фондов с терминальными серверами публикация не выполняется).

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

На балансировщике нагрузки открыть и отредактировать файл /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;
 }

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

sudo systemctl restart nginx

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

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

Затем:

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

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

При отсутствии ранее установленного RabbitMQ выполняется его установка в соответствии с подразделами Установка брокера сообщений RabbitMQ и Настройка брокера сообщений RabbitMQ.

Шаг 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. Останов служб на «Менеджере рабочих мест»

На узлах с установленным «Менеджером рабочих мест», работающем в отказоустойчивой конфигурации в режиме «SLAVE», выполняется останов службы keepalived командой:

sudo systemctl stop keepalived

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

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

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

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

  • остановить службы Termidesk:
sudo systemctl stop termidesk-taskman 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
  • в диалоговом окне псевдографического интерфейса инсталлятора выбирается роль «Менеджер рабочих мест».

Шаг 7. Восстановление RSA-ключей на «Менеджере рабочих мест»

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

Шаг 8. Отключение службы keepalived

Выполнить отключение службы keepalived:

sudo systemctl disable keepalived

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

sudo reboot

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

Обновление осуществляется аналогично Шагам 5-8.

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

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

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

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

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

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

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

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

sudo reboot

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

sudo systemctl -a | grep termidesk

где:

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

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

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

Шаги 11. Обновление «Шлюзов»

Процедура обновления проводится с помощью установки новой версии «Шлюза» Termidesk поверх уже имеющейся. Установка «Шлюзов» выполняется из пакета termidesk-gateway.

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

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

  • привести файл /etc/termidesk/gateway.yaml к виду согласно подразделу Параметры конфигурирования компонента документа 90 05 «Руководство администратора. Настройка компонента «Шлюз». Задать актуальные значения IP-адресов (или FQDN) параметрам:
    • url: ${urlCheckToken} - для обслуживания API-запросов по состоянию «Шлюза»;
    • url: ${coordinatorUrl} - для подключения к RabbitMQ;
  • сохранить файл, а затем перезапустить службу:
sudo systemctl restart termidesk-gateway

После настройки нужно передать каталог /etc/termidesk/ с первого узла «Шлюза» на другие узлы с этим компонентом:

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

где:

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

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

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

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

Перед началом установки остальных узлов «Шлюзов» необходимо:

  • переместить скопированный ранее каталог termidesk в каталог /etc/:
sudo mv /home/user/termidesk /etc/
  • назначить права по использованию ключа и сертификата пользователю termidesk-gateway:
sudo chown termidesk-gateway:termidesk-gateway /etc/termidesk/ssl-cert-snakeoil.*
  • предоставить права на чтение ключа и сертификата:
sudo chmod 640 /etc/termidesk/ssl-cert-snakeoil.key
sudo chmod 644 /etc/termidesk/ssl-cert-snakeoil.pem
  • перезапустить службу:
sudo systemctl restart termidesk-gateway

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

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

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

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

sudo systemctl restart nginx

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

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

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

  • обновляются компоненты в ОС РМ (в базовом ВРМ - «золотом образе» или в ОС терминального сервера) в соответствии с документацией на них:
    • «Агент виртуального рабочего места»;
    • «Агент виртуальных смарт-карт»;
    • «Видеоагент»;
    • «Сессионный агент»;
    • STAL (если используется);
    • TERA (если используется); 
  • выполняется новая публикация в фондах РМ, если публикация применима к ним.

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