Общее описание

Система NAICE поставляется в виде образов для запуска контейнеров в системе контейнеризации и управления приложениями Docker. Для управления всеми компонентами системы используется плагин Docker Compose, предназначенный для решения различных задач для мультиконтейнерных приложений.

Для автоматизации установки используются плейбуки Ansible.

Подготовка к установке NAICE

Ниже приведена инструкция по выполнению однохостовой установки.

Инструкция по установке с резервированием системы приведена в статьях:

Возможна онлайн и оффлайн установка.

Установка онлайн возможна на все поддерживаемые типы ОС и описана далее.

Оффлайн установка (закрытый контур) описана в разделе v1.3_3.2.3.1 Однохостовая(standalone) в закрытом контуре с Ansible

Установка Ansible

Для запуска плейбуков необходимо установить Ansible на хост, с которого есть доступ по SSH до целевого хоста.

Рекомендуемая ОС хоста для запуска плейбука - Ubuntu 24.04.

Минимальная версия Ansible для корректной работы плейбуков установки 2.16.3.

Для корректной установки на ОС Astra Linux 1.7.x требуется версия Ansible не выше 2.17.12.

Официальная документация по установке Ansible.

Установить на хост, с которого будет выполняться запуск плейбуков ansible через утилиту apt: (включая необходимую для корректной работы утилиту sshpass):

sudo apt install ansible sshpass -y

Установить ansible коммьюнити docker версии 4.7.0. Для этого требуется скачать и поместить на целевой хост файл community-docker-4.7.0.tar.gz.

Пример скачивания утилитой wget
wget https://cloud.eltex-co.ru/index.php/s/9Hv6p4yz611fDXb/download -O community-docker-4.7.0.tar.gz

Установить коммьюнити командой (без использования sudo):

ansible-galaxy collection install community-docker-4.7.0.tar.gz

Проверить версию коммьюнити:

ansible-galaxy collection list | grep community.docker
community.docker                         4.7.0  
community.docker                         X.X.X 

Получение файлов для работы плейбука 

NAICE является лицензируемым продуктом, для активации функционала необходима лицензия. См. v1.3_2. Лицензирование.

На момент установки наличие лицензии необязательно.

До активации лицензии используется демо режим, в котором ограничено максимально количество сетевых устройств, активных эндпоинтов, активных гостевых эндпоинтов количеством 15 шт.

Для разворачивания системы в онлайн режиме необходимо скачать и поместить на хост, с которого будет выполняться запуск плейбука архив последней версии со страницы v1.3_1.5 Стабильные версии.

wget https://cloud.eltex-co.ru/index.php/s/FwCxzHEfxPYueO7/download -O ansibleNaice-v1.3-2026-10-30.tar.gz

Затем необходимо распаковать архив:

tar xzvf ansibleNaice-v1.3-2026-10-30.tar.gz

Зайти в папку с плейбуками:

cd ansibleNaice-v1.3-2026-10-30

Настройка доступа к хостам для установки 

Используется доступ к целевому хосту по логину / паролю

Для настройки хоста, на который будет выполняться развертывание системы, требуется отредактировать файл inventory/hosts.yml. В переменной ansible_host необходимо указать IP-адрес или доменное имя целевого хоста, а так же логин, пароль, пароль sudo для доступа к целевому хосту, на котором будет разворачиваться NAICE:

---
common:
  hosts:
    # Хост для выполнения stand-alone установки NAICE
    common_host:
      ansible_host: <IP-адрес или доменное имя хоста для NAICE> 
      ansible_user: <логин пользователя>
      ansible_ssh_pass: <пароль пользователя>
      ansible_become_pass: <пароль для повышения привилегий (sudo)>

Указанный IP-адрес или доменное имя хоста будет добавлен в параметр в Subject Alternative Name при генерации самоподписанного сертификата во время установки сервисов NAICE. 


Используется доступ к целевому хосту по SSH ключу

По умолчанию предполагается, что используется доступ к хосту по логину паролю. Если используется режим доступа по SSH ключу (предварительно необходимо сгенерировать и поместить ключ на целевой хост), необходимо изменить настройки в файле ansible.cfg:

[defaults]
inventory = hosts.yml
host_key_checking = True
private_key_file = <путь к файлу ключа>
deprecation_warnings = False

и указать параметры доступа к целевому хосту в файле hosts.yml:

---
common:
  hosts:
    common_host:
      ansible_host: <IP-адрес или доменное имя хоста для NAICE>
      ansible_user: <логин пользователя>
      ansible_become_pass: <пароль для повышения привилегий (sudo)>
Проверка корректности настроек доступа

Проверить корректность указанных настроек и наличие доступа до удаленного хоста с помощью команд: 

ansible all --list-hosts  # проверить список хостов
ansible all -m ping       # проверить доступ до хостов

Пример вывода, если хост доступен:

common_host | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Настройка переменных в файле group_vars/all.yml

Настройки переменных указаны в файле group_vars/all.yml и используются для конфигурирования сервисов. Полностью назначение переменных описано в конце статьи в разделе "Приложение А". Система будет работоспособна при использовании значений переменных по умолчанию. Далее описаны наиболее востребованные переменные конфигурации сервисов.

Настройка часового пояса (TZ)

Для корректного отображения времени в системе NAICE необходимо задать следующий параметр в файле конфигурации group_vars/all.yml.

Формат переменной:

time_zone: "Регион/Город"

Например:
time_zone: "Europe/Moscow"

или:
time_zone: "Asia/Novosibirsk"

Прочие переменные (опционально)

При необходимости измените значения других переменных окружения в group_vars/all.yml. Например, можно изменить директорию установки сервисов NAICE или установить адрес NAICE, отличный от адреса управления.

Настройка Docker-сетей

Важно: как правило эти настройки не требуют изменений. Их необходимо скорректировать только если подсети Docker пересекаются с уже используемыми в инфраструктуре (например с подсетями сетевых устройств, которые взаимодействуют с NAICE, или подсетями из которых выполняются подключения администраторов и пользователей портальной авторизации)!

Для сервисов NAICE используются три Docker-сети:

  • Внешняя сеть (external)
  • Внутренняя сеть (internal)
  • unmasked (naice-network-unmasked)

Переменные для настройки Docker-сетей находятся в файле group_vars/networks.yml. В нём задаются подсеть, диапазон IP‑адресов и шлюз для каждой сети.

Пример содержимого файла group_vars/networks.yml:

---
# Переменные для настройки Docker сети
docker_network_unmasked:
  subnet: "172.18.0.0/20"
  ip_range: "172.18.8.0/21"
  gateway: "172.18.0.1"
 
docker_network_external:
  subnet: "172.20.0.0/20"
  ip_range: "172.20.8.0/21"
  gateway: "172.20.0.1"
 
docker_network_internal:
  subnet: "172.21.0.0/20"
  ip_range: "172.21.8.0/21"
  gateway: "172.21.0.1"

В примере приведены значения по умолчанию. Если сети пересекаются с существующими сетями в инфраструктуре, необходимо заменить сети в файле group_vars/networks.yml перед установкой NAICE.

Выполнить смену подсетей docker после установки NAICE повторным запуском плейбука после изменения переменных нельзя! В случае необходимости смены подсетей docker после установки необходимо использовать инструкцию v1.3_3.2.6 Смена Docker-сетей

Установка NAICE

При установке на ОС Astra Linux версии 1.7.6/1.8.2 и выше с установленным обновлением БЮЛЛЕТЕНЬ № 2024-1108SE17MD необходимо отключить контроль разрешения исполнения кода в программном стеке в соответствии с инструкцией Нарушение работы некоторых программ после установки оперативного обновления Astra Linux Special Edition 1.7.6 ! В противном случае запуск ПО NAICE будет невозможен!


Для установки сервисов NAICE в варианте однохостовой инсталляции используется плейбук install-naice.yml.

Запустите плейбук install-naice.yml для установки сервиса контейнеризации Docker,  плагина Docker-compose и запуска через этот плагин сервисов NAICE:

ansible-playbook install-naice.yml

Во время установки сервисов NAICE для пользовательских интерфейсов lemmus, gavia и larus автоматически выполняется генерация самоподписанного сертификата. При наличии собственного заверенного сертификата после установки сервисов предусмотрена возможность заменить самоподписанный сертификат на собственный. Подробную информацию об использовании сертификатов безопасности можно найти в разделе v1.3_3.6 Использование сертификатов безопасности.

Время запуска контейнеров в связи с использованием механизма healthcheck для проверки успешности старта сервисов может занять до нескольких минут. Необходимо дождаться полного выполнения плейбука.

Проверка состояния сервисов после установки 

Проверить успешность запуска контейнеров можно, перейдя в директорию для установки NAICE (по умолчанию - /etc/docker-naice/ ) и выполнив команду для просмотра списка и статуса контейнеров docker compose ps -a. 

Пример показан для ОС Ubuntu 24.04 LTS и может отличаться для других ОС, в зависимости от версии docker compose:

$ sudo docker compose ps -a
NAME                COMMAND                  SERVICE             STATUS              PORTS
epg-service         "/bin/sh -e /usr/loc…"   epg-service         running (healthy)
naice-aquila        "java -cp @/app/jib-…"   naice-aquila        running (healthy)   0.0.0.0:49->1049/tcp, 0.0.0.0:5703->5703/tcp, 0.0.0.0:8091->8091/tcp, :::49->1049/tcp, :::5703->5703/tcp, :::8091->8091/tcp
naice-bubo          "java -cp @/app/jib-…"   naice-bubo          running (healthy)   0.0.0.0:5704->5704/tcp, 0.0.0.0:8093->8093/tcp, :::5704->5704/tcp, :::8093->8093/tcp
naice-castor        "java -Djava.awt.hea…"   naice-castor        running (healthy)   0.0.0.0:5705->5705/tcp, 0.0.0.0:8095->8095/tcp, :::5705->5705/tcp, :::8095->8095/tcp
naice-cetus         "java -cp @/app/jib-…"   naice-cetus         running (healthy)   0.0.0.0:5707->5707/tcp, 0.0.0.0:8099->8099/tcp, :::5707->5707/tcp, :::8099->8099/tcp
naice-gavia         "java -cp @/app/jib-…"   naice-gavia         running (healthy)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
naice-gulo          "java -cp @/app/jib-…"   naice-gulo          running (healthy)   0.0.0.0:8089->8089/tcp, :::8089->8089/tcp
naice-lemmus        "java -cp @/app/jib-…"   naice-lemmus        running (healthy)   0.0.0.0:8083->8083/tcp, :::8083->8083/tcp
naice-lepus         "java -cp @/app/jib-…"   naice-lepus         running (healthy)   0.0.0.0:67->1024/udp, 0.0.0.0:8087->8087/tcp, :::67->1024/udp, :::8087->8087/tcp
naice-mustela       "java -cp @/app/jib-…"   naice-mustela       running (healthy)   0.0.0.0:5706->5706/tcp, 0.0.0.0:8070->8070/tcp, :::5706->5706/tcp, :::8070->8070/tcp
naice-nats          "docker-entrypoint.s…"   nats                running (healthy)   0.0.0.0:6222->6222/tcp, :::6222->6222/tcp
naice-orca          "java -cp @/app/jib-…"   naice-orca          running (healthy)   0.0.0.0:5708->5708/tcp, 0.0.0.0:8102->8102/tcp, :::5708->5708/tcp, :::8102->8102/tcp
naice-ovis          "java -cp @/app/jib-…"   naice-ovis          running (healthy)   0.0.0.0:5701->5701/tcp, 0.0.0.0:8084->8084/tcp, :::5701->5701/tcp, :::8084->8084/tcp
naice-phoca         "java -cp @/app/jib-…"   naice-phoca         running (healthy)   0.0.0.0:8097->8097/tcp, :::8097->8097/tcp
naice-postgres    "/opt/bitnami/script…"   postgres-2          running (healthy)   0.0.0.0:15432->22/tcp, 0.0.0.0:5432->5432/tcp, :::15432->22/tcp, :::5432->5432/tcp
naice-radius        "/docker-entrypoint.…"   naice-radius        running (healthy)   0.0.0.0:1812-1813->1812-1813/udp, 0.0.0.0:9812->9812/tcp, :::1812-1813->1812-1813/udp, :::9812->9812/tcp
naice-sterna        "/docker-entrypoint.…"   naice-sterna        running (healthy)   0.0.0.0:32775->80/tcp, 0.0.0.0:8443->444/tcp, :::32775->80/tcp, :::8443->444/tcp
naice-ursus         "java -cp @/app/jib-…"   naice-ursus         running (healthy)   0.0.0.0:8081->8081/tcp, :::8081->8081/tcp
naice-vulpus        "java -cp @/app/jib-…"   naice-vulpus        running (healthy)   0.0.0.0:5702->5702/tcp, 0.0.0.0:8086->8086/tcp, :::5702->5702/tcp, :::8086->8086/tcp
naice-web           "/docker-entrypoint.…"   naice-web           running (healthy)   0.0.0.0:32776->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:80->4200/tcp, :::32776->80/tcp, :::443->443/tcp, :::80->4200/tcp


  • Нет меток