Download PDF
Download page Обновление для распределенной конфигурации установки.
Обновление для распределенной конфигурации установки
Обновление для распределенной конфигурации установки
Общая концепция обновления
Обновление Termidesk, установленного в распределенной отказоустойчивой конфигурации, выполняется в следующей последовательности:
Шаги 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.
Шаг 2: резервное копирование 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
- путь, куда будет скопирован каталог.
Шаг 3: редактирование конфигурации балансировщика нагрузки
На балансировщике нагрузки нужно открыть и отредактировать файл /etc/nginx/sites-available/sampledomain.ru.conf
.
В данном конфигурационном файле следует найти директиву daas-upstream-nodes
с перечислением списка диспетчеров, выбрать первый по списку диспетчер, закомментировать его и сохранить файл.
Пример для списка балансировки:
upstream daas-upstream-nodes {
least_conn;
server 192.168.0.30;
server 192.168.0.31;
server 192.168.0.32;
}
Для исключения первого по списку диспетчера файл приводится к виду:
upstream daas-upstream-nodes {
least_conn;
# server 192.168.0.30;
server 192.168.0.31;
server 192.168.0.32;
}
После изменения файла нужно перезапустить веб-сервер:
:~$ sudo systemctl restart nginx
Шаг 4: редактирование конфигурации остальных балансировщиков нагрузки
На всех существующих балансировщиках нагрузки выполнить Шаг 3.
Шаг 5: обновление диспетчера
Процедура обновления проводится с помощью установки новой версии Termidesk поверх уже имеющейся и не отличается от процесса, описанного в пункте Неавтоматизированная установка Termidesk за исключением отсутствия необходимости корректировки файла конфигурации веб-сервера.
При установке диспетчера Termidesk необходимо выбрать компонент «Broker» в диалоговом окне псевдографического интерфейса инсталлятора.
Корректировка файла /etc/apache2/apache2.conf
, описанная в пункте Неавтоматизированная установка Termidesk, при обновлении не производится.
Перед запуском процедуры обновления нужно:
- остановить службу 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
- ключ игнорирования несуществующих файлов.
Шаг 6: восстановление RSA ключей из резервной копии
Выполнить копирование сохраненных на Шаге 2 RSA ключей на узел с обновленным диспетчером.
Затем перезагрузить узел:
:~$ sudo reboot
После загрузки узла проверить состояние служб:
:~$ sudo systemctl -a | grep termidesk
где:
-a
- ключ для вывода списка служб;
grep
- утилита для поиска текста в выводе предыдущей команды.
Проверить доступность веб-интерфейса диспетчера Termidesk через веб-браузер.
Шаг 7: обновление следующего по списку диспетчера
Необходимо выполнить действия с Шага 3 по Шаг 6 для следующего по списку диспетчера.
При выполнении Шага 3 ранее закомментированный элемент остается в том же состоянии, дополнительно нужно закомментировать строку со следующим диспетчером.
Шаг 8: восстановление конфигурации балансировщика нагрузки
По завершении обновления ВСЕХ диспетчеров список балансировки на ВСЕХ балансировщиках восстанавливается до исходного.
Ранее закомментированные строки нужно раскомментировать, затем выполнить перезагрузку службы nginx
на каждом балансировщике:
:~$ sudo systemctl restart nginx
Выполнить проверку доступности графического интерфейса Termidesk через веб-браузер сначала обращением на IP-адрес каждого из диспетчеров, затем обращением на IP-адрес балансировщика нагрузки.
Шаги 9-14: обновление шлюзов
Обновление шлюзов по своей структуре не отличается от действий по обновлению диспетчеров, за исключением выбора устанавливаемого компонента.
При установке шлюза Termidesk необходимо выбрать компонент «Gateway» в диалоговом окне псевдографического интерфейса инсталлятора.
При редактировании файла /etc/nginx/sites-available/sampledomain.ru.conf
следует найти директиву daas-upstream-ws
с перечислением списка шлюзов и выполнить исключение (комментирование строк) шлюзов.
Перед запуском процедуры обновления шлюзов нужно:
- остановить службы шлюза:
:~$ sudo systemctl stop termidesk-wsproxy
- удалить кеш файла ответов
debconf
командами:
:~$ sudo rm -f /var/cache/debconf/config.dat
:~$ sudo rm -f /var/cache/debconf/config.dat-old
После завершения установки необходимо убедиться, что в файле /etc/opt/termidesk-vdi/termidesk.conf
параметр WSPROXY_BIND_ADDRESS
приведен к следующему виду:
WSPROXY_BIND_ADDRESS="0.0.0.0"
Шаг 15: останов служб на менеджере ВРМ
На узлах с установленным менеджером ВРМ, работающем в отказоустойчивой конфигурации в режиме «SLAVE», выполняется останов службы keepalived
командой:
:~$ sudo systemctl stop keepalived
Шаг 16: обновление менеджеров ВРМ
Обновление менеджера ВРМ по своей структуре не отличается от действий по обновлению диспетчеров, за исключением выбора устанавливаемого компонента.
При установке менеджера ВРМ Termidesk необходимо выбрать компонент «Task manager» в диалоговом окне псевдографического интерфейса инсталлятора.
Перед запуском процедуры обновления менеджера ВРМ нужно:
- остановить службы 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
Шаг 17: восстановление RSA ключей на менеджере ВРМ
Выполнить копирование сохраненных на Шаге 2 RSA-ключей на узел с обновленным менеджером ВРМ.
Затем перезагрузить узел:
:~$ sudo reboot
Шаг 18: восстановление службы keepalived
Выполнить запуск службы keepalived
командой:
:~$ sudo systemctl start keepalived
Шаги 19-22: обновление основного менеджера ВРМ
Обновление осуществляется аналогично Шагам 15-18.