Обновление на следующую версию

Перед выполнением обновления рекомендуется сделать бэкап - создать снапшот виртуальной машины в случае установки в системе виртуализации или создать архив содержимого директории установки NAICE (по умолчанию - /etc/docker-naice).

Обновление в рамках одной версии описано в инструкции v1.1_3.8.2 Обновление в рамках одной версии.

Общий принцип обновления

В общем случае для обновления на следующую версию необходимо повторно выполнить установку ansible-плейбуком целевой версии согласно инструкции по установке поверх текущей установки.

Если какие-либо переменные в groups/all.yml были изменены - необходимо перенести значения переменных all.yml из старого плейбука в новый перед установкой.

Директория установки NAICE - изменить значение, если ранее использовалась другая директория для установки:

naice_docker_path: /etc/docker-naice


Указать актуальную временную зону работы NAICE:

time_zone: "Etc/UTC"


Если используется переодическое изменение пароля компьютера для взаимодействия с Active Directory - указать ранее заданные значения переменных:

ursus_netlogon_change_pass_cron: '-'
ursus_netlogon_change_pass_cron_node1: '-'
ursus_netlogon_change_pass_cron_node2: '-'
ursus_netlogon_change_pass_length: 12


Если используется Offline ELM сервер - указать ранее заданные значения адреса и прокси сервера (если подключение через пркоси-сервер используется):

elm_server_url: https://elm.eltex-co.ru:8099
elm_proxy_host: ""
elm_proxy_port: ""
elm_proxy_login: ""
elm_proxy_password: ""


Если ранее был добавлен свой сертификат для работы аутентификации по протоколу EAP-PEAP - добавить сертификаты, ключ и выполнить настройку переменных в соответствие с инструкцией Замена сертификатов по умолчанию для работы протокола EAP-PEAP.


Если ранее был добавлен свой сертификат для работы аутентификации по протоколу EAP-TLS - добавить сертификаты, ключ и выполнить настройку переменных в соответствие с инструкцией Добавление сертификатов для работы протокола EAP-TLS


Ранее в конфигурации подсетей контейнеров вручную добавлено использование определенных подсетей - необходимо скопировать эту часть конфигурации из файла конфигурации контейнеров docker-compose.yml и перенести её в файл шаблона, используемый плейбуками ansible при установке ansible/roles/docker/templates/docker-compose.yml.j2 в конце данного файла указать требуемые подсети:

networks:
  unmasked:
    name: naice-network-unmasked
    driver: bridge
    driver_opts:
      com.docker.network.bridge.enable_ip_masquerade: "false"
    ipam:
      config:
         - subnet: "172.22.0.0/20"
          ip_range: "172.22.8.0/21"
          gateway: "172.22.0.1" 

  external:
    driver: "bridge"
    driver_opts:
      com.docker.network.bridge.name: "external"
    enable_ipv6: false
    external: false
    internal: false
    ipam:
      driver: "default"
      config:
        - subnet: "172.20.0.0/20"
          ip_range: "172.20.8.0/21"
          gateway: "172.20.0.1"
    name: "external"

  internal:
    driver: bridge
    driver_opts:
      com.docker.network.bridge.name: "internal"
    enable_ipv6: false
    external: false
    internal: true
    ipam:
      driver: "default"
      config:
        - subnet: "172.21.0.0/20"
          ip_range: "172.21.8.0/21"
          gateway: "172.21.0.1"
    name: "internal"



Для обновления между несколькими версиями последовательно выполните обновление на последнюю версию перед текущей.

Особенности обновления на версию 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 образа

  1. Выгрузить копию резервную копию БД в соответствие с инструкцией v1.0_3.3.7 Резервное копирование.
  2. Удалить виртуальную машину, развернутую на версии 1.0.
  3. Развернуть новую виртуальную машину из OVA образа в соответствие с инструкцией v1.1_3.2.1 Установка с использованием OVA-образа.
  4. Восстановить данные из ранее созданного бэкапа БД в соответствии с инструкцией v1.1_3.2.7 Резервное копирование.
  5. При необходимости (если было установлено ранее) установить повторно в соответствии с инструкцией:
    1. v1.1_3.2.6 Замена портальных/WEB сертификатов
    2. v1.1_3.2.4 Замена сертификатов EAP-PEAP
    3. v1.1_3.2.5 Замена сертификатов EAP-TLS

Действия после обновления

Сертификаты безопасности (если ранее были установлены пользовательские сертификаты)

Если ранее для пользовательских интерфейсов (Веб-интерфейс, портал) были установлены сторонние сертификаты безопасности - после обновления необходимо восстановить их в соответствие с инструкцией: v1.1_3.7 Использование сертификатов безопасности.

Менеджер конфигураций

В версии 1.1 был добавлен новый сервис Phoca (менеджер конфигураций), позволяющий настраивать некоторые системные параметры, которые раньше настраивались через переменные окружения, в WEB интерфейсе. Конфигурации при этом хранятся в базе данных.

При обновлении с 1.0 до 1.1 будет произведен перенос значений некоторых переменных в соответствующую базу данных. К таким переменным относятся:

Для сохранения пользовательских значений эти переменные не были убраны из скриптов установки 1.1. Они будут удалены в версии 1.2.

Переменные <имя_сервиса>_LOGGING_LEVEL были заменены на настройку общего уровня логирования для всех сервисов - SERVER_LOGGING_LEVEL

Настройка соответствующих параметров системы теперь выполняется в v1.1_6.2. Настройки системы.

Портальная авторизация и СМС шлюз

В версии 1.1 была добавлена интеграции с почтовым сервером. В результате изменилось наименование переменной ${phoneNumber}. Данная переменная используется в настройках портала Гостевые порталы → Управление порталами → Конструктор порталов на странице 3 конфигурации в настройке Вход по СМС. В ходе обновления на версию 1.1 значение данной переменной будет обновлено на ${target} автоматически.

В случае наличия настроенной интеграции  с СМС шлюзом в разделе Шлюзы оповещений → Управление шлюзами, после обновления требуется вручную заменить переменную ${phoneNumber} на ${target} для сохранения совместимости с настройками портала.

СУБД PostgreSQL в кластере (в схеме с резервированием)

v1.1_3.8.3 Обновление pg_hba.conf в 1.1