операционная система семейства Linux, поддерживающая docker (рекомендуется Ubuntu server 18 и новее)
объем оперативной памяти от 8 Гб
процессор, поддерживающий виртуализацию и имеющий от 4 ядер
место на жестком диске от 40 Гб
наличие сетевого интерфейса 1 Гбит/с
Получение привилегий sudo без дополнительного ввода пароля
От имени непривилегированного пользователя необходимо выполнить команду:
echo "$(whoami) ALL=(ALL) NOPASSWD: ALL" | sudo EDITOR='tee -a' visudo
... и указать пароль. После этого для выполнения команд с sudo , или перехода в режим суперпользователя дополнительный ввод пароля не потребуется.
Установка docker и docker-compose
Установка docker
Наиболее простой и быстрый способ установки - воспользоваться скриптом с официального сайта :
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Добавление непривилегированного пользователя в группу docker
Это позволит работать с docker без использования sudo:
sudo usermod -aG docker $(whoami)
Установка docker-compose
Docker-compose - отдельный от проект от docker, поэтому для получения свежей версии, его нужно скачать с github:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Запуск ECCM
Файлы и конфигурация
Файлы, необходимыми для запуска ECCM необходимо распаковать в директорию /opt/eccm :
docker-compose.yml
.env
В файле .env находятся переменные, определяющие поведение проекта, вот их список:
Переменная | Значение по умолчанию | Описание |
---|---|---|
COMPOSE_PROJECT_NAME | eccm | Название проекта в docker-compose, используется для идентификации, в случае если на сервере запущено несколько проектов. |
ECCM_PROFILE | production | |
ECCM_TAG | 0.6 | |
ECCM_WEB_ADDRESS | yourserver.ru | Адрес, на котором будет работать WEB интерфейс системы. |
ECCM_WEB_PORT | 8080 | Порт для доступа к WEB интерфейсу. |
ECCM_BACKBONE_ADDRESS | yourserver.ru | Адрес ECCM в сети управления устройствами. |
ECCM_DISCOVERY_IP_RANGE | 192.168.0.1,192.168.1.1-63 | Диапазон автоматического поиска устройств в сети. В качестве аргумента передается список IP адресов, разделенных запятой. Также в список можно включить диапазоны адресов в виде 192.168.1.1-255 . |
ECCM_TIMEZONE | Asia/Novosibirsk | Временной пояс, в котором работает система, указывается в соответствии с tz database, например Asia/Novosibirsk. |
ECCM_LOGLEVEL | 'INFO' | Уровень логирования в проекте. |
Примеры команд для запуска ECCM
Для запуска проекта нужно перейти в директорию с файлами и выполнить команду:
docker-compose up -d
Пример вывода в консоль при успешном запуске:
$ docker-compose up -d
Creating network "eccm_eltex-internal" with the default driver
Creating eccm_rabbitmq-service_1 ... done
Creating eccm_postgres-zabbix_1 ... done
Creating eccm_postgres-ory_1 ... done
Creating eccm_identity-provider_1 ... done
Creating eccm_postgres-polemarch_1 ... done
Creating eccm_hydra_1 ... done
Creating eccm_postgres-eccm_1 ... done
Creating eccm_zabbix-proxy_1 ... done
Creating eccm_monitoring-adapter_1 ... done
Creating eccm_backend-ui_1 ... done
Creating eccm_diff-checker_1 ... done
Creating eccm_upgrade-finish-checker_1 ... done
Creating eccm_data-presenter_1 ... done
Creating eccm_device-manager_1 ... done
Creating eccm_polemarch_1 ... done
Creating eccm_configurator_1 ... done
Creating eccm_oathkeeper-proxy_1 ... done
Creating eccm_zabbix-server_1 ... done
Creating eccm_cron-manager_1 ... done
Creating eccm_web-gui_1 ... done
Creating eccm_upgrader_1 ... done
Creating eccm_git-connector_1 ... done
Creating eccm_communicator_1 ... done
Creating eccm_zabbix-web_1 ... done
Creating eccm_zabbix-adapter-service_1 ... done
Для остановки проекта используйте команду
docker-compose down
Доступ к WEB интерфейсу
Для подключения к WEB интерфейсу ECCM нужно перейти в браузере по ссылке:
http://<IP адрес вашего сервера (ECCM_WEB_ADDRESS)>:8080/
Известные проблемы и методы решения
При запуске проекта могут быть ошибки:
ERROR: Couldn't connect to Docker daemon at http+[docker://localhost](docker://localhost) - is it running?
Возможная причина: docker демон не запущен. Для проверки нужно выполнить команду
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.
Решения:
(предпочтительное) добавить пользователя в группу docker, это можно сделать командой:
sudo usermod -aG docker $(whoami)