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

ELTEX Cloud Configuration Manager
Инструкция по установке ECCM
Версия ПО 1.4.0

Требования к серверу

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

  • операционная система семейства Linux, поддерживающая docker (рекомендуется Ubuntu server 20 и новее);

  • объем оперативной памяти от 8 ГБ;

  • процессор, поддерживающий виртуализацию и имеющий от 4-х ядер;

  • от 40 ГБ свободного места на жестком диске;

  • наличие сетевого интерфейса 1 Гбит/с.

Получение привилегий sudo без дополнительного ввода пароля (опционально)

От имени непривилегированного пользователя необходимо выполнить команду:

echo "$(whoami)    ALL=(ALL) NOPASSWD: ALL" | sudo EDITOR='tee -a' visudo

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

Установочный архив

Архив с необходимыми для запуска файлами можно скачать по FTP: ftp://ftp.eltex.org/eccm/eccm-1.4.tar.gz (логин: wifiguest пароль: GuestWiFi ).

В архиве содержатся все необходимые скрипты и конфигурационные файлы для установки docker, docker-compose и развёртывания ECCM.

Загрузите архив на сервер и распакуйте его. Рекомендуется распаковывать архив в заранее созданную отдельную директорию.

Пример команд:

mkdir eccm
sudo tar -xvf <название архива>.tar.gz eccm/

Установка docker и docker-compose

Наиболее простой и быстрый способ установки — перейти в директорию, в которую был распакован установочный архив, и воспользоваться скриптом compose-tools.sh, используя флаг --install:

cd eccm
sudo ./compose-tools.sh --install

Далее можно выполнить следующие команды:

Для проверки установленных docker:

docker --version

Для того чтобы убедиться, что команда возвращает версию docker не ниже указанной в примере:

Docker version 20.10.8, build 3967b7

Для проверки установленного docker-compose:

docker-compose --version

Для того чтобы убедиться, что команда возвращает версию docker-compose не ниже указанной в примере:

docker-compose version 1.29.2, build 5becea4

Запуск ECCM

Файлы и конфигурация

Файлы, необходимые для запуска ECCM, находятся в директории, в которую вы распаковали установочный архив:

postgres/.env
postgres/data/postgresql.conf
identity-provider/.env
eccm/.env

Для простейшего запуска системы ECCM необходимо прописать IP-адрес сервера в конфигурационные файлы:

  • identity-provider/.env

    # Внешний адрес nginx proxy, необходимо задать корректный внешний адрес при инсталляции
    IDENTITY_PROVIDER_WEB_ADDRESS=<IP сервера>
    IDENTITY_PROVIDER_WEB_PORT=9090
    
    ## Postgres
    # Внешний адрес контейнера Postgres, необходимо задать корректный внешний адрес при инсталляции
    POSTGRES_HOST=<IP сервера>
    POSTGRES_PORT=5432
    POSTGRES_USER=tester
    POSTGRES_PASSWORD=tester
  • eccm/.env

    # Необходимо поменять на реальные адреса при инсталляции
    ECCM_BACKBONE_ADDRESS=<IP сервера, для работы с сетевыми устройствами>
    ECCM_WEB_ADDRESS=<IP сервера>
    
    # Необходимо указать реальный внешний адрес identity-provider
    IDENTITY_PROVIDER_HOST=<IP сервера>
    IDENTITY_PROVIDER_PORT=9090
    
    # postgres
    # Внешний адрес контейнера Postgres, необходимо задать корректный внешний адрес при инсталляции
    POSTGRES_HOST=<IP сервера>
    POSTGRES_PORT=5432

Переменные окружения

postgres/.env

В postgres/.env находятся переменные, определяющие поведение БД Postgres при запуске её в контейнере. Перечень переменных приведен в Таблице 1.

Таблица 1 — Переменные, определяющие поведение БД Postgres при запуске её в контейнере

ПеременнаяЗначение по умолчаниюОписание
COMPOSE_PROJECT_NAMEpostgresНазвание проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов).
POSTGRES_USER
Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных.
POSTGRES_PASSWORD
Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных.
POSTGRES_TIMEZONEAsia/NovosibirskВременной пояс, в котором работает система (указывается в соответствии с tz database, например, Asia/Novosibirsk).

postgresql.conf

Данный файл содержит параметры, влияющие на производительность базы данных. Настройки по умолчанию достаточны для тестового запуска и поддержки около 100 устройств. Инструкции по изменению конфигурации можно найти на странице ECCM на сайте https://eltex-co.ru/ или обратиться в службу технической поддержки ELTEX.

identity-provider/.env

В файле identity-provider/.env находятся переменные, определяющие поведение группы контейнеров, отвечающих за авторизацию пользователя в системе ECCM. Перечень переменных приведен в Таблице 2.

Таблица 2 — Переменные, определяющие поведение проекта

ПеременнаяЗначение по умолчаниюОписание
COMPOSE_PROJECT_NAMEeccmНазвание проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов).
ECCM_PROFILEproduction
IDENTITY_PROVIDER_TAG1.4
IDENTITY_PROVIDER_REGISTRYhub.eltex-co.ruАдрес docker-registry, с которого будет выполняться получение образов системы. Если используется локальное зеркало, то можно указать его адрес.
IDENTITY_PROVIDER_WEB_ADDRESSyourserver.ruАдрес, на котором будет работать сервис identity-provider.
IDENTITY_PROVIDER_WEB_PORT9090Порт для доступа к сервису identity-provider.
POSTGRES_HOST192.168.0.1Адрес, на котором работает БД Postgres.
POSTGRES_PORT5432Порт для доступа к БД Postgres.
POSTGRES_USER
Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных.
POSTGRES_PASSWORD
Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных.

eccm/.env

В файле eccm/.env находятся переменные, определяющие поведение проекта. Перечень переменных приведен в Таблице 3.

Таблица 3 — Переменные, определяющие поведение проекта

ПеременнаяЗначение по умолчаниюОписание
COMPOSE_PROJECT_NAMEeccmНазвание проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов).
ECCM_PROFILEproduction
ECCM_TAG1.4
ECCM_REGISTRYhub.eltex-co.ruАдрес docker-registry, с которого будет выполняться получение образов системы. Если используется локальное зеркало, то можно указать его адрес.
ECCM_BACKBONE_ADDRESS192.168.0.1Внутренний адрес, на котором будет работать система ECCM с устройствами в сети.
ECCM_WEB_ADDRESSyourserver.ruАдрес, на котором будет работать web-интерфейс системы ECCM.
IDENTITY_PROVIDER_HOST192.168.0.1Внешний адрес сервиса identity-provider.
IDENTITY_PROVIDER_PORT9090Порт для доступа к сервису identity-provider.
ECCM_WEB_PORT80Порт для доступа к web-интерфейсу.
ECCM_TIMEZONEAsia/NovosibirskВременной пояс, в котором работает система (указывается в соответствии с tz database, например Asia/Novosibirsk).
ECCM_LOGLEVEL'INFO'Уровень логирования в проекте.
MAX_PARALLEL_TASKS4Количество одновременно выполняемых операций с устройствами.
ECCM_MONITORING_SERVER_MEM_HARD_LIMIT512M

Ограничение физической памяти для docker-контейнера.

ECCM_MONITORING_WEB_MEM_HARD_LIMIT256MОграничение физической памяти для docker-контейнера.
POSTGRES_HOST192.168.0.1Адрес, на котором работает БД Postgres.
POSTGRES_PORT5432Порт для доступа к БД Postgres.
POSTGRES_USER
Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных.
POSTGRES_PASSWORD
Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных.
POSTGRES_SHM_SIZE4gbОграничение выделенной оперативной памяти для работы с БД Postgres.

Примеры команд для запуска ECCM

Для запуска проекта нужно перейти в директорию с файлами установочного архива и выполнить команду:

sudo ./compose-tools.sh --start

Пример вывода на консоль при успешном запуске:

 Пример вывода...

Starting postgres...
Creating network "postgres_default" with the default driver
Creating volume "postgres_postgres" with default driver
Creating postgres_postgres_1 ... done
Postgres started

Starting identity-provider...
Creating network "identity-provider_dev_default" with the default driver
Creating volume "identity-provider_dev_hydra-config" with default driver
Creating identity-provider_dev_postgres-configurator_1 ... done
Creating identity-provider_dev_hydra_1 ... done
Creating identity-provider_dev_identity-provider_1 ... done
Creating identity-provider_dev_nginx-proxy_1 ... done
Identity-provider started

Starting ECCM services...
Creating network "eccm_dev_eltex-internal" with the default driver
Creating network "eccm_dev_default" with the default driver
Creating volume "eccm_dev_upgrader-data" with default driver
Creating volume "eccm_dev_git-templates-data" with default driver
Creating volume "eccm_dev_git-config-data" with default driver
Creating volume "eccm_dev_monitoring-server-alertscripts" with default driver
Creating volume "eccm_dev_monitoring-server-externalscripts" with default driver
Creating volume "eccm_dev_monitoring-server-modules" with default driver
Creating volume "eccm_dev_monitoring-server-enc" with default driver
Creating volume "eccm_dev_monitoring-server-ssh_keys" with default driver
Creating volume "eccm_dev_monitoring-server-ssl-certs" with default driver
Creating volume "eccm_dev_monitoring-server-ssl-keys" with default driver
Creating volume "eccm_dev_monitoring-server-ssl-ssl_ca" with default driver
Creating volume "eccm_dev_monitoring-server-snmptraps" with default driver
Creating volume "eccm_dev_monitoring-server-mibs" with default driver
Creating volume "eccm_dev_monitoring-server-export" with default driver
Creating volume "eccm_dev_monitoring-web-ssl-nginx" with default driver
Creating volume "eccm_dev_rabbitmq-data" with default driver
Creating volume "eccm_dev_oathkeeper-config" with default driver
Creating volume "eccm_dev_hydra-configurator" with default driver
Creating eccm_dev_oathkeeper-proxy_1 ... done
Creating eccm_dev_postgres-configurator_1 ... done
Creating eccm_dev_monitoring-service-worker_1 ... done
Creating eccm_dev_hydra-configurator_1 ... done
Creating eccm_dev_rabbitmq-service_1 ... done
Creating eccm_dev_postgres-monitoring-bouncer_1 ... done
Creating eccm_dev_monitoring-service_1 ... done
Creating eccm_dev_monitoring-server_1 ... done
Creating eccm_dev_monitoring-web_1 ... done
Creating eccm_dev_map-manager_1 ... done
Creating eccm_dev_polemarch_1 ... done
Creating eccm_dev_backend-ui_1 ... done
Creating eccm_dev_license-manager_1 ... done
Creating eccm_dev_data-presenter_1 ... done
Creating eccm_dev_device-manager_1 ... done
Creating eccm_dev_upgrade-finish-checker_1 ... done
Creating eccm_dev_diff-checker_1 ... done
Creating eccm_dev_monitoring-adapter_1 ... done
Creating eccm_dev_git-connector_1 ... done
Creating eccm_dev_upgrader_1 ... done
Creating eccm_dev_cron-manager_1 ... done
Creating eccm_dev_web-gui_1 ... done
Creating eccm_dev_communicator_1 ... done
ECCM started

Для остановки проекта выполните команду:

sudo ./compose-tools.sh --stop

Для обновления всех контейнеров ECCM выполните команду:

sudo ./compose-tools.sh --pull

Для очистки всех контейнеров, томов и сетей ECCM выполните команду:

sudo ./compose-tools.sh --clean

При запуске скрипта с флагом --clean данные с БД Postgres также  будут удалены. Рекомендуем использовать данный флаг только при полной деинсталляции ECCM с сервера.

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

sudo ./compose-tools.sh --start <ip адрес>

Для запуска проекта с нужным уровнем логирования выполните команду:

sudo ./compose-tools.sh --logging DEBUG

Доступ к web-интерфейсу

Для подключения к web-интерфейсу ECCM нужно ввести в браузере следующий адрес:

http://<IP-адрес вашего сервера (ECCM_WEB_ADDRESS)>/

Учетные данные, используемые по умолчанию: логин 'eccm', пароль 'eccm'.

Известные проблемы и методы решения

Ошибки, возникающие при запуске проекта

ERROR: Couldn't connect to Docker daemon at http+[docker://localhost](docker://localhost) - is it running?

Возможная причина: docker-демон не запущен. Для проверки нужно выполнить команду:

sudo systemctl status docker

Если в строке Active статус отличается от Active (running), значит проблема заключается в этом.

Решение: Запустить docker командой:

sudo systemctl start docker

Got permission denied while trying to connect to the Docker daemon socket at [unix:///var/run/docker.sock](unix://intdocs.eltex.loc/var/run/docker.sock): Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied

Возможная причина: запуск производился от непривилегированного пользователя, который не был добавлен в группу docker.

Решения:

  1. Предпочтительное: добавить пользователя в группу docker. Это можно сделать командой:

    sudo usermod -aG docker $(whoami)

  2. Выполнять все операции с привилегиями root.

Services starting...
Creating network "eccm_eltex-internal" with the default driver
ERROR: Pool overlaps with other one on this address space

Возможная причина: подсеть, указанная в ECCM_INTERNAL_SUBNETWORK, уже используется докером.

Решение: Необходимо выбрать другую подсеть в файле .env. Посмотреть уже созданные докером подсети можно с помощью команды:

sudo docker network inspect $(docker network ls --filter "DRIVER=bridge" --format '{{ .Name }}')  -f '{{ .Name  }} {{ (index .IPAM.Config 0).Subnet }}'

Ошибки, возникающие при остановке проекта

ERROR: error while removing network: network eccm_eltex-internal id 324bd72dd9c107cf2ea48effb75d9e7ad2dfbc8f5f7317b89cd7f318d61d5c4b has active endpoints

Возможная причина: docker не полностью очистил кэш.

Решение: перезапуск docker с помощью команды:

sudo systemctl restart docker 
  • Нет меток