Обновление на следующую версию
Перед выполнением обновления рекомендуется сделать бэкап - создать снапшот виртуальной машины в случае установки в системе виртуализации или создать архив содержимого директории установки NAICE (по умолчанию - /etc/docker-naice).
Обновление в рамках одной версии описано в инструкции v1.1_3.8.2 Обновление в рамках одной версии.
Общий принцип обновления
В общем случае для обновления на следующую версию необходимо повторно выполнить установку ansible-плейбуком целевой версии согласно инструкции по установке поверх текущей установки.
Если какие-либо переменные в groups/all.yml были изменены - необходимо перенести значения переменных all.yml из старого плейбука в новый перед установкой.
Особенности обновления на версию 1.1
Обновление с версии 0.9 требует последовательного обновления через версию 1.0!
Перед обновлением на версию 1.1 необходимо выполнить обновление до версии 1.0 в соответствие с инструкцией: v1.0_3.7.2 Обновление с версии 0.9 на 1.0 (обновление PostrgeSQL с версии 15 на 17)
Перед обновлением на версию 1.1 необходимо остановить все контейнеры и удалить все добавленные ранее в ходе разворачивания NAICE подсети docker.
Одиночная (stand alone) установка
Для одиночной установки необходимо зайти в папку установки (по умолчанию /etc/docker-naice) и выполнить команды:
# Остановить контейнеры командой sudo docker compose down # Убедиться, что ни один контейнер не запущен sudo docker compose ps -a NAME COMMAND SERVICE STATUS PORTS # Удалить все добавленные подсети docker: sudo docker network prune WARNING! This will remove all custom networks not used by at least one container. Are you sure you want to continue? [y/N] y Deleted Networks: naice-network
Выполнить установку в соответствии с инструкцией: v1.1_3.3 Установка плейбуками Ansible (одиночная "Stand-Alone")
Установка с резервированием
Для установки с резервированием необходимо остановить контейнеры с сервисами NAICE и СУБД PostgreSQL.
Сначала необходимо остановить сервисы NAICE. Для этого на каждой ноде NAICE зайти в папку установки (по умолчанию /etc/docker-naice) и выполнить:
# Остановить контейнеры командой sudo docker compose down # Убедиться, что ни один контейнер не запущен sudo docker compose ps -a NAME COMMAND SERVICE STATUS PORTS
Затем на каждой ноде остановить кластер СУБД PostgreSQL. Для этого на каждой ноде СУБД зайти в папку установки (по умолчанию /etc/docker-naice) и выполнить:
# Остановить контейнер СУБД командой sudo docker compose -f docker-compose.repmgr.yml down # Убедиться, что контейнер не запущен sudo docker compose -f docker-compose.repmgr.yml ps -a NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
Выполнить на всех нодах, на которых развернуты сервисы NAICE и кластер СУБД PostgreSQL команду:
# Удалить все добавленные подсети docker: sudo docker network prune WARNING! This will remove all custom networks not used by at least one container. Are you sure you want to continue? [y/N] y Deleted Networks: naice-network
Если этого не сделать, может возникнуть ошибка такого вида:
[ems@naice docker-naice]$ docker compose up -d [+] up 2/2 ✔ Network internal Created 0.0s ✘ Network external Error Error response from daemon: cannot create network 91dd2efc95b3a15915a979379f5bc9... 0.0s failed to create network external: Error response from daemon: cannot create network 91dd2efc95... (external): conflicts with network ba1d160c56... (br-ba1d160c5655): networks have overlapping IPv4
Выполнить установку в соответствии с инструкцией: v1.1_3.4 Установка с резервированием (c использованием VRRP) или v1.1_3.5 Установка с резервированием (без использования VRRP)
Обновление установки выполненной из OVA образа
- Выгрузить копию резервную копию БД в соответствие с инструкцией v1.0_3.3.7 Резервное копирование.
- Удалить виртуальную машину, развернутую на версии 1.0.
- Развернуть новую виртуальную машину из OVA образа в соответствие с инструкцией v1.1_3.2.1 Установка с использованием OVA-образа.
- Восстановить данные из ранее созданного бэкапа БД в соответствии с инструкцией v1.1_3.2.7 Резервное копирование.
- При необходимости (если было установлено ранее) установить повторно в соответствии с инструкцией:
Действия после обновления
Сертификаты безопасности (если ранее были установлены пользовательские сертификаты)
Если ранее для пользовательских интерфейсов (Веб-интерфейс, портал) были установлены сторонние сертификаты безопасности - после обновления необходимо восстановить их в соответствие с инструкцией: v1.1_3.7 Использование сертификатов безопасности.
Менеджер конфигураций
В версии 1.1 был добавлен новый сервис Phoca (менеджер конфигураций), позволяющий настраивать некоторые системные параметры, которые раньше настраивались через переменные окружения, в WEB интерфейсе. Конфигурации при этом хранятся в базе данных.
При обновлении с 1.0 до 1.1 будет произведен перенос значений некоторых переменных в соответствующую базу данных. К таким переменным относятся:
SYSTEM_LOCALERADIUS_AUTH_PORTOVIS_SESSION_TO_DELETE_HOURSAQUILA_TACACS_PORTAQUILA_SESSION_TO_DELETE_DAYS, AQUILA_ACCOUNTING_TO_DELETE_DAYSMUSTELA_EVENTS_TO_DELETE_DAYSELM_SERVER_URL,ELM_PROXY_HOST, ELM_PROXY_PORT,ELM_PROXY_LOGIN, ELM_PROXY_PASSWORDURSUS_ADMIN_PASSWORD_LENGTH
Для сохранения пользовательских значений эти переменные не были убраны из скриптов установки 1.1. Они будут удалены в версии 1.2.
Переменные <имя_сервиса>_LOGGING_LEVEL были заменены на настройку общего уровня логирования для всех сервисов - SERVER_LOGGING_LEVEL.
Настройка соответствующих параметров системы теперь выполняется в v1.1_6.2. Настройки системы.
Портальная авторизация и СМС шлюз
В версии 1.1 была добавлена интеграции с почтовым сервером. В результате изменилось наименование переменной ${phoneNumber}. Данная переменная используется в настройках портала Гостевые порталы → Управление порталами → Конструктор порталов на странице 3 конфигурации в настройке Вход по СМС. В ходе обновления на версию 1.1 значение данной переменной будет обновлено на ${target} автоматически.
В случае наличия настроенной интеграции с СМС шлюзом в разделе Шлюзы оповещений → Управление шлюзами, после обновления требуется вручную заменить переменную ${phoneNumber} на ${target} для сохранения совместимости с настройками портала.