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

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

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

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

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

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

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

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

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

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

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

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

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

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

Последовательность обновления распределенной конфигурации фермы 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 сначала обращением на IP-адрес каждого из «Универсальных диспетчеров», затем обращением на IP-адрес балансировщика нагрузки;
  • Шаг 12. После выполнения обновления узлов:
    • обновить компоненты в гостевых ОС РМ (в базовом ВРМ - «золотом образе» или в ОС терминального сервера) в соответствии с документацией на них:
      • «Агент виртуального рабочего места»;
      • «Агент виртуальных смарт-карт»;
      • «Видеоагент»;
      • «Сессионный агент»;
      • 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;
 }
BASH

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

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;
 }
BASH

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

sudo systemctl restart nginx
BASH

Шаг 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/
BASH

где:

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

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

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

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

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

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

sudo systemctl stop keepalived
BASH

Шаг 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
BASH
  • удалить кеш файла ответов debconf командами:
sudo rm -f /var/cache/debconf/config.dat
sudo rm -f /var/cache/debconf/config.dat-old
BASH

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

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

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

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

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

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

sudo systemctl disable keepalived
BASH

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

sudo reboot
BASH

Шаги 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
BASH
  • удалить кеш файла ответов debconf командами:
sudo rm -f /var/cache/debconf/config.dat
sudo rm -f /var/cache/debconf/config.dat-old
BASH

где:

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

Для обновления «Универсального диспетчера»:

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

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

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

sudo reboot
BASH

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

sudo systemctl -a | grep termidesk
BASH

где:

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

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

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

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

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

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

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

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

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

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

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

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