Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 5 Текущий »

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

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

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

Установка

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

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

Установка Ansible

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

Требуемая ОС хоста для запуска плейбука - Ubuntu 22.04 Jammy.

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

Помимо способов, описанных в документации, возможна установка ПО на Linux-хост через утилиту apt:

sudo apt install ansible

Пакет доступен в базовых репозиториях большинства дистрибутивов Linux.

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

Архив с файлами плейбука для тестирования предоставляется по запросу в коммерческий отдел компании Элтекс (https://eltex-co.ru/about/contacts/).

Для разворачивания системы необходимо поместить приложенный архив "ansibleNaice.tar.gz" на хост, с которого будет осуществляться запуск плейбука, в отдельную папку.

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

tar -xzvf ansibleNaice.tar.gz
cp ansible.cfg.template ansible.cfg

Предварительная подготовка перед установкой

  1. Установите утилиту sshpass, если она не установлена командой:

    sudo apt install sshpass
  2. Проверьте и при необходимости дополните строку "127.0.0.1 localhost" в файле /etc/hosts:

    127.0.0.1 localhost localhost.localdomain
  3. Установите коллекции Ansible, необходимые для работы плейбуков:

    ansible-galaxy collection install community.postgresql
  4. Для указания адреса хоста, на который необходимо развернуть систему, отредактируйте файл hosts.yml:

    ---
    common:
      hosts:
        common_host:
          ansible_host: <IP-адрес хоста для NAICE>
  5. Настройте режим доступа к хосту в файле ansible.cfg (создать из шаблона ansible.cfg.template) по SSH в зависимости от предпочитаемого варианта:
    1. по логину/паролю:

      [defaults]
      inventory = hosts.yml
      host_key_checking = False
      deprecation_warnings = False

      и дополните hosts.yml:

      ---
      common:
        hosts:
          common_host:
            ansible_host: <IP-адрес хоста для NAICE>      
            ansible_user: <логин пользователя>
            ansible_ssh_pass: <пароль пользователя>
    2. по ключу (предварительно необходимо сгенерировать и поместить ключ на удаленный хост):

      [defaults]
      inventory = hosts.yml
      remote_user = <пользователь на удаленном хосте>
      private_key_file = <путь к файлу ключа>
      host_key_checking = True
      deprecation_warnings = False
  6. (необязательно) При необходимости измените значения переменных окружения в group_vars/all.yml. Например, можно изменить директорию установки сервисов NAICE или таймзону для PostgreSQL.
  7. Проверьте доступ до удаленного хоста с помощью:

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

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

    common_host | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python3"
        },
        "changed": false,
        "ping": "pong"
    }
  8. (необязательно) При необходимости интеграции с Active Directory в файле переменных плейбука naice-ansible/group_vars/all.yml требуется указать корректные переменные (подробнее про настройку интеграции):

    radius_ms_ad_ip: '172.16.4.115'
    radius_kerberos_ad_user_login: 'fill_login'
    radius_kerberos_ad_user_password: 'fill_password'
    radius_kerberos_workgroup: 'WS'
    radius_kerberos_kdc: 'WS.LOC'
    radius_kerberos_admin_server: 'LABMS.WS.LOC'
    radius_samba_ou_structure: 'Computers'

Установка PostgreSQL

Предусмотрены два варианта дистрибуции СУБД - установка сервиса и разворачивание docker-контейнера. Рекомендуемый вариант - docker-контейнер.

A. Установка PostgreSQL в docker-контейнере

Убедитесь, что переменная deb_postgres в файле group_vars/all.yml имеет значение False. 

PostgreSQL будет установлен далее вместе с остальными сервисами NAICE.

B. Установка PostgreSQL как сервиса

Запустите специальный плейбук, который установит postgresql-15, подготовит конфигурационные файлы, создаст необходимые БД и пользователей:

ansible-playbook --ask-become-pass common-naice-databases.yml

Установка сервисов NAICE

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

  • если PostgreSQL планируется устанавливать в docker-контейнере (рекомендуется):

    ansible-playbook --ask-become-pass common-naice-services.yml
  • если PostgreSQL установлен как сервис ранее указанным плейбуком:

    ansible-playbook --ask-become-pass common-naice-services.yml -e "deb_postgres=True"

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

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

$sudo docker compose ps -a
NAME                IMAGE                                            COMMAND                  SERVICE             CREATED             STATUS                       PORTS
naice-gavia         nexus.eltex.loc:9008/naice-gavia:bug-306695-1    "java -cp @/app/jib-…"   naice-gavia         About an hour ago   Up About an hour             0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
naice-lemmus        nexus.eltex.loc:9008/naice-lemmus:bug-306695-1   "java -cp @/app/jib-…"   naice-lemmus        About an hour ago   Up About an hour             0.0.0.0:8083->8083/tcp, :::8083->8083/tcp
naice-ovis          nexus.eltex.loc:9008/naice-ovis:bug-306695-1     "java -cp @/app/jib-…"   naice-ovis          About an hour ago   Up About an hour (healthy)   0.0.0.0:8084-8085->8084-8085/tcp, :::8084-8085->8084-8085/tcp
naice-postgres      nexus.eltex.loc:9012/naice/postgres:0.5.0        "docker-entrypoint.s…"   postgres            About an hour ago   Up About an hour (healthy)   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
naice-ursus         nexus.eltex.loc:9008/naice-ursus:bug-306695-1    "java -cp @/app/jib-…"   naice-ursus         About an hour ago   Up About an hour (healthy)   0.0.0.0:8081-8082->8081-8082/tcp, :::8081-8082->8081-8082/tcp
naice-web           nexus.eltex.loc:9015/naice-web:0.5               "/docker-entrypoint.…"   naice-web           About an hour ago   Up About an hour             80/tcp, 0.0.0.0:4200->4200/tcp, :::4200->4200/tcp

Установка FreeRADIUS

Запустите плейбук common-freeradius.yml для установки сервиса FreeRADIUS и его конфигурирования:

ansible-playbook --ask-become-pass common-freeradius.yml

При необходимости интеграции с MS AD плейбук (подробнее про настройку интеграции) необходимо запускать с указанием специального ключа "--tags="use-ms-ad"":

ansible-playbook --ask-become-pass common-freeradius.yml --tags="use-ms-ad"

Установку FreeRADIUS всегда необходимо выполнять после установки сервисов NAICE.

При интеграции с MS AD если настройка DNS на сервере с NAICE выполнялась после его установки, то необходим дополнительный рестарт контейнеров для применения настройки:

docker compose stop && docker compose up -d

Приложения

Приложение A. Значение переменных окружения из .env

ПеременнаяЗначение по умолчаниюОписание

Переменные для дистрибуции

BACKEND_VERSION_TAG

0.5Версия сервисов бэкенда (naice-gavia, naice-lemmus, naice-ovis, naice-ursus)

FRONTEND_VERSION_TAG

0.5Версия сервиса фронтенда (naice-web, известный как larus)

ELTEX_HUB

nexus.eltex.loc:9015

Репозиторий со стабильными версиями сборок ПО (warning) URL в локальной сети Eltex

ELTEX_HUBhub.eltex-co.ru/naiceВнешний репозиторий со стабильными версиями сборок ПО

ELTEX_FEATURE_HUB

nexus.eltex.loc:9008Репозиторий с версиями сборок ПО в разработке. Для внутреннего использования. (warning) URL в локальной сети Eltex

BACKEND_HUB

ELTEX_HUBПеременная, хранящая текущий выбранный репозиторий для загрузки сервисов бэкенда

FRONTEND_HUB

ELTEX_HUBПеременная, хранящая текущий выбранный репозиторий для загрузки сервиса фронтенда

CI_HUB

nexus.eltex.loc:9012Репозиторий для сборок сопутствующих продуктов (PostgreSQL) (warning) URL в локальной сети Eltex
CI_HUBhub.eltex-co.ruВнешний репозиторий для сборок сопутствующих продуктов (PostgreSQL)

CI_VERSION_TAG

0.5.0Версия ПО из репозитория CI

Переменные Gavia

GAVIA_PORT8080Порт, на котором работает сервис внутри контейнера. (warning) Не рекомендуется к редактированию!
GAVIA_HOST_PORT8080Порт, в который пробрасывается порт сервиса из контейнера на хостовую машину. Используется для взаимодействия с сервисом.

Переменные Ursus

URSUS_PORT

8081Порт, на котором работает сервис внутри контейнера. (warning)

URSUS_HOST_PORT

8081Порт, в который пробрасывается порт сервиса из контейнера на хостовую машину. Используется для взаимодействия с сервисом.

URSUS_GRPC_PORT

8082Порт, на котором работает GRPC для сервиса внутри контейнера. (warning)

URSUS_GRPC_HOST_PORT

8082Порт, в который пробрасывается порт GRPC для сервиса из контейнера на хостовую машину. Используется для взаимодействия с сервисом.

URSUS_POSTGRES_USERNAME

ursusПользователь для доступа сервиса в СУБД PostgreSQL.

URSUS_POSTGRES_PASSWORD

ursusПароль пользователя для доступа сервиса в СУБД PostgreSQL.

URSUS_POSTGRES_JDBC_URL

jdbc:postgresql://{{ ansible_host }}:5432/ursusURL для взаимодействия с БД с помощью JDBC.
URSUS_GRPC_ADMIN_SERVICE_ADDRESSdns:/naice-ursus:8082Адрес GRPC сервера сервиса naice-ursus. По этому адресу происходит взаимодействие naice-gavia и naice-ursus.

Переменные Lemmus

LEMMUS_PORT8083Порт, на котором работает сервис внутри контейнера. (warning)
LEMMUS_HOST_PORT8083Порт, в который пробрасывается порт сервиса из контейнера на хостовую машину. Используется для взаимодействия с сервисом.
LEMMUS_POSTGRES_USERNAMEursusПользователь для доступа сервиса в СУБД PostgreSQL.
LEMMUS_POSTGRES_PASSWORDursusПароль пользователя для доступа сервиса в СУБД PostgreSQL.
LEMMUS_ISSUER_URLhttp://{{ ansible_host }}:8083URL для запроса токена другими сервисами.
LEMMUS_REDIRECTShttp://{{ ansible_host }}:8080/actuator/health, http://{{ ansible_host }}:4200/loginURL для перенаправления клиента после получения токена.
LEMMUS_ACCESS_TTL_S300Время жизни токена в секундах.
LEMMUS_REFRESH_TTL_S3600Время в секундах, в течении которого токен можно продлить.

Переменные PostgreSQL

POSTGRES_USERursusПользователь, создаваемый при установке и настройке СУБД.
POSTGRES_PASSWORDursusПароль пользователя, создаваемый при установке и настройке СУБД.
POSTGRES_DBursusИмя БД, создаваемой при установке и настройке СУБД.

Переменные Ovis

OVIS_PORT8084Порт, на котором работает сервис внутри контейнера. (warning)
OVIS_HOST_PORT8084Порт, в который пробрасывается порт сервиса из контейнера на хостовую машину. Используется для взаимодействия с сервисом.
OVIS_GRPC_PORT8085Порт, на котором работает GRPC для сервиса внутри контейнера. tinymce.emotions_dlg.warning
OVIS_GRPC_HOST_PORT8085Порт, в который пробрасывается порт GRPC для сервиса из контейнера на хостовую машину. Используется для взаимодействия с сервисом.
OVIS_GRPC_SERVICE_ADDRESSdns:/naice-ovis:${OVIS_GRPC_PORT}Адрес, на который выполняется запрос о состоянии сервиса.
OVIS_CACHE_TTL_S600

Время жизни кэша naice-ovis в секундах, в течении которого он хранит настройки аутентификации и авторизации. По истечении этого времени настройки перечитываются.

Для тестирования можно уменьшить значение до 10 сек, но такое значение не рекомендуется для использования на продуктовой среде.

OVIS_SESSION_IDLE_S86400Время жизни неактивных сессии пользователей, с.

Переменные Larus (WEB)

LARUS_PORT4200Порт, на котором работает сервис внутри контейнера. (warning)
LARUS_HOST_PORT80Порт, в который пробрасывается порт сервиса из контейнера на хостовую машину. Используется для взаимодействия с сервисом.
FRONTEND_API_URLhttp://{{ ansible_host }}:8080/api/v1URL для взаимодействия с сервисом naice-gavia.
FRONTEND_AUTHORIZATION_URLhttp://{{ ansible_host }}:8083URL для редиректа на страницу авторизации.
FRONTEND_WEB_URLhttp://{{ ansible_host }}:80URL на котором работает WEB-интерфейс.
Переменные уровня логирования сервисов
URSUS_LOGGING_LEVELDEBUGУровень логирования сервиса NAICE-Ursus
GAVIA_LOGGING_LEVELDEBUGУровень логирования сервиса NAICE-Gavia
LEMMUS_LOGGING_LEVELDEBUGУровень логирования сервиса NAICE-Lemmus
OVIS_LOGGING_LEVELDEBUGУровень логирования сервиса NAICE-Ovis



  • Нет меток