Download PDF
Download page Обновление для распределенной конфигурации установки.
Обновление для распределенной конфигурации установки
Обновление для распределенной конфигурации установки
Общая концепция обновления
Обновление Termidesk, установленного в распределенной отказоустойчивой конфигурации, выполняется в последовательности, приведенной далее.
Описание применимо к ферме Termidesk.
Приведенная здесь процедура обновления предполагает, что используются узлы с компонентом «Шлюз» termidesk-gateway
.
Шаги 1-5 относятся к обновлению узлов «Шлюза» Termidesk (служба termidesk-gateway
).
Шаги 6-7 относятся к настройке среды функционирования.
Шаги 8-13 относятся к обновлению узлов «Универсального диспетчера» Termidesk (служба termidesk-vdi
).
Шаги 14-21 относятся к обновлению узлов «Менеджера рабочих мест» Termidesk (службы termidesk-taskman
, termidesk-celery-beat
, termidesk-celery-worker
).
Начиная с Termidesk версии 5.0 изменен способ работы и хранения политик фонда РМ. Во время обновления распределенной или отказоустойчивой конфигурации установки с Termidesk версии 4.Х на версию 5.Х изменение политик нужно проводить после обновления на новую версию всех узлов Termidesk.
Обновление Termidesk должно осуществляться с соблюдением условий:
- обновление выполняется последовательно, с установкой промежуточных версий релизов. Например, если сейчас установлена версия 4.3, то порядок обновления до 5.1 будет следующим: 4.3 - 4.3.1 - 4.3.2 - 5.0 - 5.1;
- обновление выполняется операцией установки поверх предыдущей версии. В противном случае, если ранее Termidesk был удален без удаления БД, при повторной установке может возникнуть ряд ошибок;
- после начала процедуры обновления на Termidesk версии 5.1 запрещается производить операции удаления объектов на «Порталах» с предыдущими версиями Termidesk.
Во время обновления возможна временная неработоспособность функции автоматического входа пользователя в гостевую ОС ВМ, пока не будет обновлен последний узел с «Универсальным диспетчером».
Шаг 1. На балансировщике нагрузки, отвечающем за распределение подключений к «Шлюзам», из списка балансировки исключается «Шлюз», подлежащий обновлению (за раз - только ОДИН).
Шаг 2. Действия Шага 1 повторяются для каждого существующего балансировщика.
Шаг 3. Обновляется указанный на Шаге 1 «Шлюз».
Шаг 4. Выбирается следующий «Шлюз», подлежащий обновлению, для него выполняются Шаги 1-3.
Шаг 5. По завершении обновления ВСЕХ «Шлюзов» список балансировки восстанавливается до исходного.
Шаг 6. На сервер с СУБД, либо на отдельно выделенный сервер, устанавливается и настраивается компонент RabbitMQ в случае, если ранее RabbitMQ не был установлен.
Шаг 7. Создается резервная копия RSA-ключей, расположенных в каталоге /etc/opt/termidesk-vdi/wsproxy/
.
Шаг 8. На балансировщике нагрузки, отвечающем за распределение подключений к «Универсальным диспетчерам», из списка балансировки (конфигурации nginx
) исключается «Универсальный диспетчер», подлежащий обновлению (за раз - только ОДИН).
Шаг 9. Действия Шага 8 повторяются для каждого существующего балансировщика.
Шаг 10. Обновляется указанный на Шаге 8 «Универсальный диспетчер».
Шаг 11. На обновленном «Универсальном диспетчере» восстанавливаются RSA-ключи из резервных копий, созданных на Шаге 7. Узел перезагружается.
Шаг 12. Выбирается следующий «Универсальный диспетчер», подлежащий обновлению, для него выполняются Шаги 8-11.
Шаг 13. По завершении обновления ВСЕХ «Универсальных диспетчеров» список балансировки восстанавливается до исходного. Проверяется доступность графического интерфейса Termidesk сначала обращением на IP-адрес каждого из «Универсальных диспетчеров», затем обращением на IP-адрес балансировщика нагрузки.
Шаг 14. На узлах с установленным «Менеджером рабочих мест», который работает в отказоустойчивой конфигурации в режиме «SLAVE», должен быть выполнен останов служб keepalived
.
Шаг 15. Обновляется выбранный «Менеджер рабочих мест». Выполняется запуск служб.
Шаг 16. На обновленном «Менеджере рабочих мест» восстанавливаются RSA-ключи из резервной копии, созданной на Шаге 7. Узел перезагружается.
Шаг 17. Выполняется запуск служб keepalived
.
Шаг 18. На узле с установленным «Менеджером рабочих мест», который работает в отказоустойчивой конфигурации в режиме «MASTER», должен быть выполнен останов служб keepalived
.
Шаг 19. Обновляется выбранный «Менеджер рабочих мест». Выполняется запуск служб.
Шаг 20. На обновленном «Менеджере рабочих мест» восстанавливаются RSA-ключи из резервной копии, созданной на Шаге 7. Узел перезагружается.
Шаг 21. Выполняется запуск службы keepalived
.
Если в файлы конфигурации и запуска Termidesk (/lib/systemd/system/termidesk-*
) вручную были внесены какие-либо изменения, то необходимо выполнить резервное копирование данных файлов, поскольку эти изменения при обновлении сбрасываются до значений по умолчанию.
В случае, если планируется обновление с переходом на ОС Astra Linux Special Edition 1.8, то потребуется переустановка ОС и Termidesk.
Тогда для сохранения существующей БД нужно:
- выполнить экспорт БД из Termidesk предыдущей версии;
- выполнить резервное копирование файлов конфигурации и запуска Termidesk (
/lib/systemd/system/termidesk-*
,/etc/opt/termidesk-vdi/*
); - выполнить установку ОС Astra Linux Special Edition 1.8;
- выполнить установку и настройку RabbitMQ согласно подразделам Установка брокера сообщений RabbitMQ и Настройка брокера сообщений RabbitMQ;
- выполнить установку и настройку СУБД Postgresql-11 согласно подразделам Установка СУБД PosrgreSQL и Настройка СУБД PosrgreSQL;
- выполнить импорт ранее сохраненной БД;
- выполнить установку Termidesk согласно подразделу Распределенная установка программного комплекса.
Шаг 1. Редактирование конфигурации балансировщика нагрузки для «Шлюзов»
На балансировщике нагрузки открыть и отредактировать файл /etc/nginx/sites-available/sampledomain.ru.conf
.
В данном конфигурационном файле следует найти директиву daas-upstream-ws
с перечислением списка «Шлюзов», выбрать первый по списку, закомментировать его и сохранить файл.
Пример для списка балансировки:
Здесь и далее примеры 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-ws {
least_conn;
# server 192.0.2.30;
server 192.0.2.31;
server 192.0.2.32;
}
После изменения файла перезапустить веб-сервер:
sudo systemctl restart nginx
Шаг 2. Редактирование конфигурации остальных балансировщиков нагрузки для «Шлюзов»
На всех существующих балансировщиках нагрузки выполнить Шаг 1.
Шаги 3-4. Обновление «Шлюзов»
Процедура обновления проводится с помощью установки новой версии «Шлюза» Termidesk поверх уже имеющейся. Установка «Шлюзов» выполняется из пакета termidesk-gateway
.
Для установки «Шлюза» следует обратиться к подразделу Установка Шлюза документа СЛЕТ.10001-01 90 05 «Руководство администратора. Настройка компонента «Шлюз».
После завершения установки нужно изменить настройки запуска «Шлюзов» termidesk-gateway
:
- привести файл
/etc/termidesk/gateway.yaml
к виду согласно подразделу Параметры конфигурирования компонента документа СЛЕТ.10001-01 90 05 «Руководство администратора. Настройка компонента «Шлюз». Задать актуальные значения IP-адресов (или FQDN) параметрам:url: ${urlCheckToken}
- для обслуживания API-запросов по состоянию «Шлюза»;url: ${coordinatorUrl}
- для подключения к RabbitMQ;
- сохранить файл, а затем перезапустить службу:
sudo systemctl restart termidesk-gateway
Шаг 5. Восстановление конфигурации балансировщика нагрузки для «Шлюзов»
По завершении обновления ВСЕХ «Шлюзов» список балансировки на ВСЕХ балансировщиках восстанавливается до исходного.
Ранее закомментированные строки нужно раскомментировать, затем выполнить перезагрузку службы nginx
на каждом балансировщике:
sudo systemctl restart nginx
Шаг 6. Установка и настройка RabbitMQ
Шаг выполняется в соответствии с подразделами Установка брокера сообщений RabbitMQ и Настройка брокера сообщений RabbitMQ при отсутствии ранее установленного RabbitMQ.
Шаг 7. Резервное копирование 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
- путь, куда будет скопирован каталог.
Шаг 8. Редактирование конфигурации балансировщика нагрузки для «Универсальных диспетчеров»
На балансировщике нагрузки открыть и отредактировать файл /etc/nginx/sites-available/sampledomain.ru.conf
.
В данном конфигурационном файле следует найти директиву daas-upstream-nodes
с перечислением списка «Универсальных диспетчеров», выбрать первый по списку, закомментировать его и сохранить файл.
После изменения файла перезапустить веб-сервер:
sudo systemctl restart nginx
Шаг 9. Редактирование конфигурации остальных балансировщиков нагрузки для «Универсальных диспетчеров»
На всех существующих балансировщиках нагрузки выполнить Шаг 8.
Шаг 10. Обновление «Универсального диспетчера»
Процедура обновления проводится с помощью установки новой версии поверх уже имеющейся и не отличается от процесса, описанного в пункте Неавтоматизированная установка Termidesk. При установке «Универсального диспетчера» Termidesk необходимо выбрать роль «Портал администратора» и/или «Портал пользователя» в диалоговом окне псевдографического интерфейса инсталлятора.
Корректировка файла /etc/apache2/apache2.conf
при обновлении не производится.
При редактировании файла /etc/opt/termidesk-vdi/termidesk.conf
рекомендуется задать одинаковое значение параметра «METRICS_ACCESS_KEY» для всех узлов «Универсального диспетчера».
Перед запуском процедуры обновления нужно:
- отредактировать файл
/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
- ключ игнорирования несуществующих файлов.
Шаг 11. Восстановление RSA ключей из резервной копии для «Универсального диспетчера»
Выполнить копирование сохраненных на Шаге 7 RSA-ключей на узел с обновленным «Универсальным диспетчером».
Затем перезагрузить узел:
sudo reboot
После загрузки узла проверить состояние служб:
sudo systemctl -a | grep termidesk
где:
-a
- ключ для вывода списка служб;
grep
- утилита для поиска текста в выводе предыдущей команды.
Проверить доступность портала Termidesk через веб-браузер.
Шаг 12. Обновление следующего по списку «Универсального диспетчера»
Необходимо выполнить действия Шагов 8-11 для следующего по списку «Универсального диспетчера».
При выполнении Шага 8 ранее закомментированный элемент остается в том же состоянии, дополнительно нужно закомментировать строку с последующим элементом.
Шаг 13. Восстановление конфигурации балансировщика нагрузки для «Универсальных диспетчеров»
По завершении обновления ВСЕХ «Универсальных диспетчеров» список балансировки на ВСЕХ балансировщиках восстанавливается до исходного.
Ранее закомментированные строки нужно раскомментировать, затем выполнить перезагрузку службы nginx
на каждом балансировщике:
sudo systemctl restart nginx
Выполнить проверку доступности портала Termidesk через веб-браузер сначала обращением на IP-адрес каждого из «Универсальных диспетчеров», затем обращением на IP-адрес балансировщика нагрузки.
Шаг 14. Останов служб на «Менеджере рабочих мест»
На узлах с установленным «Менеджером рабочих мест», работающем в отказоустойчивой конфигурации в режиме «SLAVE», выполняется останов службы keepalived
командой:
sudo systemctl stop keepalived
Шаг 15. Обновление «Менеджеров рабочих мест»
Обновление «Менеджеров рабочих мест» по своей последовательности не отличается от действий по обновлению «Универсальных диспетчеров», за исключением выбора устанавливаемой роли: при установке нужно выбрать роли «Менеджер рабочих мест» и «Менеджер рабочих мест (очереди)» в диалоговом окне псевдографического интерфейса инсталлятора.
При редактировании файла /etc/opt/termidesk-vdi/termidesk.conf
рекомендуется использовать значение параметра «METRICS_ACCESS_KEY», заданного в Шаге 10 для всех «Менеджеров рабочих мест».
Перед запуском процедуры обновления нужно:
- отредактировать файл
/etc/opt/termidesk-vdi/termidesk.conf
и задать значение для параметра «METRICS_ACCESS_KEY», если оно не задано; - остановить службы Termidesk:
sudo systemctl stop termidesk-taskman termidesk-celery-beat termidesk-celery-worker
При остановке службы на «Менеджере рабочих мест», находящемся в режиме «SLAVE», команда может выдать ошибку - это нормальное поведение.
- удалить кеш файла ответов
debconf
командами:
sudo rm -f /var/cache/debconf/config.dat
sudo rm -f /var/cache/debconf/config.dat-old
После установки нужно исключить службу termidesk-taskman
из автоматического запуска:
sudo systemctl disable termidesk-taskman
Исключение службы из автоматического запуска необходимо, поскольку управление ее состоянием производится скриптами режима высокой доступности.
На узле, выбранном в качестве slave
, нужно не только исключить службу из автоматического запуска, но и остановить ее после обновления:
sudo systemctl stop termidesk-taskman
Шаг 16. Восстановление RSA-ключей на «Менеджере рабочих мест»
Выполнить копирование сохраненных на Шаге 7 RSA-ключей на узел с обновленным «Менеджером рабочих мест».
Затем перезагрузить узел:
sudo reboot
Шаг 17. Восстановление службы keepalived
Выполнить запуск службы keepalived
:
sudo systemctl start keepalived
Шаги 18-21. Обновление основного «Менеджера рабочих мест»
Обновление осуществляется аналогично Шагам 14-17.