Общее описание
Система 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 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