Обновление для распределенной конфигурации установки
Приведенная здесь процедура обновления предполагает, что используются узлы-шлюзы termidesk-wsproxy
.
Если ранее на узлах-шлюзах был установлен экспериментальный шлюз termidesk-gateway
, необходимо сначала обновить их, и только потом - узлы-диспетчеры и узлы-менеджеры ВРМ.
Шаги 3-8 относятся к обновлению узлов-диспетчеров Termidesk (служба termidesk-vdi
).
Шаги 9-14 относятся к обновлению узлов-шлюзов Termidesk (служба termidesk-wsproxy
).
Шаги 15-22 относятся к обновлению узлов-менеджеров ВРМ (планировщиков заданий) Termidesk (службы termidesk-taskman
, termidesk-celery-beat
, termidesk-celery-worker
).
Шаг 1. На сервер с СУБД, либо на отдельно выделенный сервер, устанавливается и настраивается компонент RabbitMQ-server в случае, если ранее RabbitMQ-server не был установлен.
Шаг 2. Создается резервная копия RSA-ключей, расположенных в каталоге /etc/opt/termidesk-vdi/wsproxy/
для последующей корректной работы диспетчеров и шлюзов.
Шаг 3. На балансировщике нагрузки, отвечающем за распределение подключений к диспетчерам, из списка балансировки (конфигурации nginx
) исключается диспетчер, подлежащий обновлению (за раз - только ОДИН).
Шаг 4. Действия шага 3 повторяются для каждого существующего балансировщика.
Шаг 5. Обновляется указанный на шаге 3 диспетчер.
Шаг 6. На обновленном диспетчере восстанавливаются RSA-ключи из резервных копий, созданных на шаге 2. Узел перезагружается.
Шаг 7. Выбирается следующий диспетчер, подлежащий обновлению, для него выполняются шаги 3-6.
Шаг 8. По завершении обновления ВСЕХ диспетчеров список балансировки восстанавливается до исходного. Проверяется доступность графического интерфейса Termidesk сначала обращением на IP-адрес каждого из диспетчеров, затем обращением на IP-адрес балансировщика нагрузки.
Шаг 9. На балансировщике нагрузки, отвечающем за распределение подключений к шлюзам, из списка балансировки исключается шлюз, подлежащий обновлению (за раз - только ОДИН).
Шаг 10. Действия шага 9 повторяются для каждого существующего балансировщика.
Шаг 11. Обновляется указанный на шаге 9 шлюз.
Шаг 12. На обновленном шлюзе восстанавливаются RSA-ключи из резервной копии, созданной на шаге 2. Узел перезагружается.
Шаг 13. Выбирается следующий шлюз, подлежащий обновлению, для него выполняются шаги 9-12.
Шаг 14. По завершении обновления ВСЕХ шлюзов список балансировки восстанавливается до исходного.
Шаг 15. На узлах с установленным планировщиком заданий, который работает в отказоустойчивой конфигурации в режиме «SLAVE», должен быть выполнен останов служб keepalived
.
Шаг 16. Обновляется выбранный планировщик заданий. Выполняется запуск служб.
Шаг 17. На обновленном планировщике заданий восстанавливаются RSA-ключи из резервной копии, созданной на шаге 2. Узел перезагружается.
Шаг 18. Выполняется запуск служб keepalived
.
Шаг 19. На узле с установленным планировщиком заданий, который работает в отказоустойчивой конфигурации в режиме «MASTER», должен быть выполнен останов служб keepalived
.
Шаг 20. Обновляется выбранный планировщик заданий. Выполняется запуск служб.
Шаг 21. На обновленном планировщике заданий восстанавливаются RSA-ключи из резервной копии, созданной на шаге 2. Узел перезагружается.
Шаг 22. Выполняется запуск службы keepalived
.
Обновление до Termidesk версии 4.1 возможно, если предыдущая установленная версия не ниже 4.0.
Если в файлы конфигурации и запуска Termidesk (/lib/systemd/system/termidesk-*
) вручную были внесены какие-либо изменения, то необходимо выполнить резервное копирование данных файлов, поскольку эти изменения при обновлении сбрасываются до значений по умолчанию.
Начиная с версии 4.0 конфигурация Termidesk сведена в единый файл /etc/opt/termidesk-vdi/termidesk.conf
.
В случае, если предыдущая версия Termidesk была установлена на ОС Astra Linux Special Edition 1.6 или Astra Linux Common Edition, то потребуется переустановка ОС и Termidesk.
Тогда для сохранения существующей БД нужно:
- выполнить экспорт БД из Termidesk предыдущей версии;
- выполнить резервное копирование файлов конфигурации и запуска Termidesk (
/lib/systemd/system/termidesk-*
,/etc/opt/termidesk-vdi/wsproxy/*
); - выполнить установку ОС Astra Linux Special Edition 1.7;
- выполнить установку и настройку RabbitMQ-server согласно подразделам Установка брокера сообщений RabbitMQ-server и Настройка брокера сообщений RabbitMQ-server;
- выполнить установку и настройку СУБД Postgresql-11 согласно подразделам Установка СУБД Posrgres-11 и Настройка СУБД Posrgres-11;
- выполнить импорт ранее сохраненной БД;
- выполнить установку Termidesk согласно подразделу Распределенная установка программного комплекса.
Шаг 1: установка и настройка RabbitMQ-server
Шаг выполняется в соответствии с подразделами Установка RabbitMQ-server и Настройка RabbitMQ-server при отсутствии ранее установленного RabbitMQ-server.
где:
-r
- ключ для рекурсивной (со вложенными каталогами) передачи;
localuser
- имя пользователя целевого узла;
ipaddr_or_fqdn_host
- IP-адрес или FQDN целевого узла;
/home/user
- путь, куда будет скопирован каталог.
В данном конфигурационном файле следует найти директиву daas-upstream-nodes
с перечислением списка диспетчеров, выбрать первый по списку диспетчер, закомментировать его и сохранить файл.
Пример для списка балансировки:
Здесь и далее примеры IP-адресов приведены в соответствии с RFC 5737. Указанные IP-адреса должны быть заменены на актуальные, используемые согласно схеме адресации, принятой в инфраструктуре предприятия.
Для исключения первого по списку диспетчера файл приводится к виду:
После изменения файла нужно перезапустить веб-сервер:
Шаг 5: обновление диспетчера
Процедура обновления проводится с помощью установки новой версии Termidesk поверх уже имеющейся и не отличается от процесса, описанного в пункте Неавтоматизированная установка Termidesk за исключением отсутствия необходимости корректировки файла конфигурации веб-сервера.
При установке диспетчера Termidesk необходимо выбрать компонент «Broker» в диалоговом окне псевдографического интерфейса инсталлятора.
Корректировка файла /etc/apache2/apache2.conf
, описанная в пункте Неавтоматизированная установка Termidesk, при обновлении не производится.
Перед запуском процедуры обновления нужно:
- остановить службу Termidesk:
- удалить кеш файла ответов
debconf
командами:
где:
-f
- ключ игнорирования несуществующих файлов.
Затем перезагрузить узел:
После загрузки узла проверить состояние служб:
где:
-a
- ключ для вывода списка служб;
grep
- утилита для поиска текста в выводе предыдущей команды.
Проверить доступность веб-интерфейса диспетчера Termidesk через веб-браузер.
При выполнении Шага 3 ранее закомментированный элемент остается в том же состоянии, дополнительно нужно закомментировать строку со следующим диспетчером.
Ранее закомментированные строки нужно раскомментировать, затем выполнить перезагрузку службы nginx
на каждом балансировщике:
Выполнить проверку доступности графического интерфейса Termidesk через веб-браузер сначала обращением на IP-адрес каждого из диспетчеров, затем обращением на IP-адрес балансировщика нагрузки.
При установке шлюза Termidesk необходимо выбрать компонент «Gateway» в диалоговом окне псевдографического интерфейса инсталлятора.
При редактировании файла /etc/nginx/sites-available/sampledomain.ru.conf
следует найти директиву daas-upstream-ws
с перечислением списка шлюзов и выполнить исключение (комментирование строк) шлюзов.
Перед запуском процедуры обновления шлюзов нужно:
- остановить службы шлюза:
- удалить кеш файла ответов
debconf
командами:
После завершения установки необходимо убедиться, что в файле /etc/opt/termidesk-vdi/termidesk.conf
параметр WSPROXY_BIND_ADDRESS
приведен к следующему виду:
При установке менеджера ВРМ Termidesk необходимо выбрать компонент «Task manager» в диалоговом окне псевдографического интерфейса инсталлятора.
Перед запуском процедуры обновления менеджера ВРМ нужно:
- остановить службы Termidesk:
При остановке службы на менеджере ВРМ, находящемся в режиме «SLAVE», команда может выдать ошибку - это нормальное поведение.
- удалить кеш файла ответов
debconf
командами:
После установки нужно исключить службу termidesk-taskman
из автоматического запуска:
Исключение службы из автоматического запуска необходимо, поскольку управление ее состоянием производится скриптами режима высокой доступности.
На узле, выбранном в качестве slave
, нужно не только исключить службу из автоматического запуска, но и остановить ее после обновления:
Затем перезагрузить узел:
- Обновление для распределенной конфигурации установки
- Общая концепция обновления
- Шаг 1: установка и настройка RabbitMQ-server
- Шаг 2: резервное копирование RSA-ключей
- Шаг 3: редактирование конфигурации балансировщика нагрузки
- Шаг 4: редактирование конфигурации остальных балансировщиков нагрузки
- Шаг 5: обновление диспетчера
- Шаг 6: восстановление RSA ключей из резервной копии
- Шаг 7: обновление следующего по списку диспетчера
- Шаг 8: восстановление конфигурации балансировщика нагрузки
- Шаги 9-14: обновление шлюзов
- Шаг 15: останов служб на менеджере ВРМ
- Шаг 16: обновление менеджеров ВРМ
- Шаг 17: восстановление RSA ключей на менеджере ВРМ
- Шаг 18: восстановление службы keepalived
- Шаги 19-22: обновление основного менеджера ВРМ