Установка PromUC

См.также

Документация к предыдущей версии PromUC 2.x.x

Установка системы

Состав и содержание дистрибутивного носителя данных

Дистрибутив Promuc поставляется в двух вариантах, различающихся наличием в составе каталога с файлами docker-образов для установки комплекса на оборудовании заказчика: promuc-3.tar.gz (размер менее 1 МБ) и promuc-3-full.tar.gz (размер более 1 ГБ). Других отличий между ними нет.

Состав дистрибутива

Каталог/файл

Назначение

promuc-3.tar.gz

promuc-3-full.tar.gz

install.sh

Скрипт установки

do.sh

Срипт управления сервисами

update.sh

Скрипт обновления сервиса

upgrade.sh

Скрипт обновления установочных файлов

getimage.sh

Скрипт обновления docker-образа

template.order

Шаблон файла .order

template.env

Шаблон файла .env

version

Содержит номер версии PromUC

proxy

Каталог сервиса Traefik

postgres

Каталог сервиса Postgres

redis

Каталог сервиса Redis

rabbitmq

Каталог сервиса RabbitMQ

gitea

Каталог сервиса Gitea

framework

Каталог сервиса Module Framework

ruleengine

Каталог сервиса Module RuleEngine

gis

Каталог сервиса Module Gis

fluentbit

Каталог сервиса Fluenbit

updater

Каталог сервиса Updater

pgadmin

Каталог сервиса PgAdmin

portainer

Каталог сервиса Portainer

install

Каталог со служебными файлами установки

images

Каталог с docker-образами

Порядок загрузки данных и программ

Получение дистрибутива

Дистрибутив Promuc доступен по следующим ссылкам:

Порядок его скачивания будет рассмотрен далее.

Подготовка к установке для Debian 12

Минимальные требования

  • Операционная система: Debian GNU/Linux версии не ниже 11 или иная производная от неё

  • Процессор: x64 2 ядра

  • Память: 4 ГБ

  • Хранилище: не менее 3 ГБ

  • Дополнительное программное обеспечение:

    • Docker Engine, Compose v2

    • curl, pv, git, bzip2, gnupg2, openssl, ca-certificates, lsb-release, htpasswd

Настройка прокси

В случае, если для доступа в Интернет используется прокси, то необходимо предварительно настроить параметры APT, docker, профиль пользователя. Пример настройки http-прокси с аутентификацией логин - test.tt, пароль - :T|T^T~T.t2.

  • Пример настройки файла /etc/apt/apt.conf.d/99-proxy:

Acquire::http::Proxy "http://test.tt::T|T^T~T.t2@10.186.0.116:3128";
Acquire::https::Proxy "http://test.tt::T|T^T~T.t2@10.186.0.116:3128";
  • Пример настройки файла ~/.profile с добавлением переменных *_proxy:

# ~/.profile: executed by Bourne-compatible login shells.

export http_proxy="http://test.tt::T|T^T~T.t2@10.186.0.116:3128"
export https_proxy="http://test.tt::T|T^T~T.t2@10.186.0.116:3128"
export no_proxy="localhost,.local,127.0.0.0/8,promuc.demo,.promuc.demo,172.16.16.0/24"

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi

mesg n 2> /dev/null || true
  • Пример настройки файла ~/.docker/config.json. В этом файле обязательно заменяем специальные символы их шестнадцатиричным кодом с экранированием символом %:

{
  "proxies":
  {
    "default":
    {
      "httpProxy": "http://test%2Ett:%3AT%7CT%5ET%7ET%2Et2@10.186.0.116:3128",
      "httpsProxy": "http://test%2Ett:%3AT%7CT%5ET%7ET%2Et2@10.186.0.116:3128",
      "noProxy": "172.16.16.0/24"
    }
  }
}
  • Пример настройки файла /etc/systemd/system/docker.service.d/http-proxy.conf. В этом файле специальные символы экранируем двойным символом %:

[Service]
Environment="HTTP_PROXY=http://test%%2Ett:%%3AT%%7CT%%5ET%%7ET%%2Et2@10.186.0.116:3128"
Environment="HTTPS_PROXY=http://test%%2Ett:%%3AT%%7CT%%5ET%%7ET%%2Et2@10.186.0.116:3128"

Предварительные настройки

Все описанные далее действия выполняются в командной строке терминала Linux Debian.

В случае отсутствия отдельных компонентов может потребоваться подключение к сети Интернет для их установки.

Установку необходимо производить от имени root или другого пользователя, обладающего аналогичными правами, с командой sudo. Чтобы сократить ввод и не добавлять для каждого действия команду sudo можно один раз перед установкой выполнить команду sudo -i и затем указать пароль учётной записи, чтобы все последующие действия выполнялись с правами суперпользователя или переключиться на пользователя, обладающего правами администратора, например, root, при помощи команды su - root:

$ sudo -i
[sudo] password for user:
#

или

$ su - root
Password:
#

Файлы .order и template.order

В файле .order определяется перечень устанавливаемых сервисов скриптами install.sh и do.sh. Строки начинающиеся с символа # пропускаются. Например изначально не устанавливаются portainer, pgadmin, gis:

proxy
fluentbit
postgres
redis
#portainer
rabbitmq
memcached
framework
gitea
#pgadmin
#gis
updater
ruleengine

При отсутствии файла .order он создаётся из template.order.

Корневой файл .env

При установке файл .env создаётся из template.env:

SERVICE_DOMAIN=
PROMUC_DOWNLOAD_URL=https://download.protei-sm.ru
  • SERVICE_DOMAIN - получает в качестве значения домен установки PromUC.

  • PROMUC_DOWNLOAD_URL - адрес сайта с docker-файлами образов сервисов. Используется в случае размещения файлов на стороне заказчика. При этом будут использоваться следующие пути:

    • /images/ - для docker-образов

    • /maps/ - для картографических файлов сервиса Gis

Файлы .env сервисов

В данных файлах указываются служебные переменные необходимые для установки и работы конкретного сервиса. При отсутствии файла .env сервис считается не установленным. Файл создаётся при выполнении скрпита install.sh с аргументом --recreate или -r.

Настройка преобразования сетевых имён сервисов

Каждый сервис PromUC использует отдельный домен следующего уровня. Например, для существующего домена promuc.loc сервис Proxy будет использовать адрес proxy.promuc.loc.

Для использования сервисов PromUC с других АРМ в сети предприятия настройте в DNS-зоне соответствующие А-записи для сервисов promuc.loc, proxy.promuc.loc, mq.promuc.loc, fw.promuc.loc, re.promuc.loc, gis.promuc.loc, portainer.promuc.loc, pgadmin.promuc.loc.

Пример А-записи для Proxy и существующего домена promuc.loc:

proxy.promuc.loc.     3600    IN      A       185.91.54.107

Режим дополнительного логирования (DEBUG)

Режим DEBUG предназначен для включения логирования выполнения скриптов установки PromUC с целью выполнения диагностики и устранения неполадок. Для его включения необходимо установить любое значение переменной DEBUG, например, посредством выпонения команды консоли:

export DEBUG=1

После чего в каталогах PromUC при выполнении скриптов будут создаваться файлы с именем .<Имя файла скрипта>, например, promuc/.install.sh.log.

Установка для Debian

Процесс установки будет рассмотрен на примере системы Debian 11, для других версий может потребоваться ручная установка необходимых компонентов, например, Docker.

Внимание

Установку необходимо производить от имени root или другого пользователя, обладающего аналогичными правами, с командой sudo.

Загрузите и распакуйте соответствующий архив в каталог /opt:

# cd /opt
# curl -O https://download.protei-sm.ru/promuc-3.tar.gz
# tar -xf promuc-3.tar.gz
# cd promuc

Установка выполняется скриптом install.sh:

# ./install.sh --recreate

Примечание

ключ --recreate или -r указывает провести установку с удалением имеющихся данных

Внимание

При установке с ключом --recreate или -r накопленные данные будут уничтожены

Примечание

при использовании дополнительного ключа -f установка будет выполняться без дополнительных запросов на продолжение после установки каждого сервиса

Установщик выводит в консоль перечень устанавливаемых сервисов и их очерёдность установки. Если не был указан ключ -f, то для положительного ответа на вопрос можно просто нажать клавишу Enter.

Выполнить установку PromUC (Y/n): y
Обновляем кеш пакетной базы...
Требуется установка пакетов: jq rsync gnupg2 lsb-release git bzip2 apache2-utils
Продолжаем? (Y/n): y
Устанавливаем пакеты...OK

Проверяем наличие и версии Docker и Compose...
Требуется установка Docker
Требуется провести обновление согласно инструкции https://docs.docker.com/engine/install/debian/
Продолжаем? (Y/n): y

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

Удаляем docker docker-engine docker.io docker-compose containerd runc
Добавляем репозиторий Docker
Требуется установка пакетов: docker-ce docker-ce-cli containerd.io docker-compose-plugin
Устанавливаем пакеты...OK

Согласно файла .order будут установлены следующие компоненты:

proxy
fluentbit
postgres
redis
rabbitmq
memcached
framework
gitea
updater
ruleengine

Если необходимо скорректировать то нажмите 'n', отредактируйте данный файл и повторно запустите установку
Продолжаем? (Y/n):

Далее необходимо ввести адрес домена, в пространстве которого будут функционировать сервисы комплекса (далее для примера будет использоваться домен promuc.loc).

Настраиваем прокси traefik

Введите домен сервисов 2-го уровня или более: promuc.loc

Далее задаем логин администратора (по-умолчанию admin):

Не найден адрес proxy.promuc.loc, добавляем в /etc/hosts

Введите логин администратора: admin

и пароль (генерируется случайный):

Введите пароль администратора (не менее 12 символов): d91cd047c057

Далее скрипт отобразит логин и пароль для панели управления сервиса Traefik и попросит указать адрес электронной почты администратора:

Для доступа к панели мониторинга прокси используйте

URL: https://proxy.promuc.loc
логин: admin
пароль: d91cd047c057

Введите email администратора: admin@promuc.loc

Примечание

Адрес электронной почты, в частности, необходим при использовании PgAdmin4 (средство администрирования базы данных, при необходимости устанавливается отдельно) и должен соответствовать как минимум записи username@domain.ru или аналогичной.

Далее выбираем какой сертификат будем использовать для защиты соединений:

Выберите - генерируем сертификат (1), получаем от Let's Encrypt (2) или использовать собственные (3): 1
  1. создание самозаверенного сертификата

  2. получение публичного сертификата при помощи сервиса в интернете

  3. использование имеющихся сертификатов

Для локального развертывания достаточно выбрать первый вариант.

Далее скрипт сообщает расположение файла сертификата ca.crt:

Сертификат CA доступен в /opt/promuc/proxy/conf/certs/ca.crt и по ссылке https://promuc.loc/ca.crt
Необходимо импортировать в браузер и в системный список доверенных корневых центров сертификации

Указанный сертификат после окончания установки необходимо будет импортировать в список «Доверенных корневых центров сертификации». Например в Яндекс.Браузер - Настройки > Системные > Управление Сертификатами. Аналогичный пункт настройки имеется в других браузерах.

После установки сервиса скрипт выводит результат запуска контейнеров установленного сервиса и запрашивает продолжение установки:

Запускаем прокси

Получаем файл ...
.................
.................
[+] Running 2/2
 ✔ Network proxy_backend  Created                                                           0.2s
 ✔ Container traefik      Healthy                                                           2.0s
Следующим будет установлен сервис fluentbit
Продолжаем? (Y/n):

Аналогичные сообщения будут выведены после установки остальных сервисов.

По окончании установки создаётся файл /opt/promuc/.config со списком реквизитов доступа к сервисам:

Установка Promuc окончена

Основные реквизиты доступа в файле /opt/promuc/.config

### Traefik ###
логин:  admin
пароль: 80198eb7
email:  admin@promuc.loc

### Сертификат CA ###

-----BEGIN CERTIFICATE-----
MIIC4jCCAcqgAwIBAgIUFXr9q8xMehI8RDEfGgz8cYc1y2kwDQYJKoZIhvcNAQEL
...
g6El72bpeSnNVoI2ByZHDMbX+XvOjw==
-----END CERTIFICATE-----

### Portainer ###
логин:  admin
пароль: 80198eb7

### PgAdmin ###
логин:  admin@promuc.loc
пароль: 80198eb7

### RabbitMQ ###
логин:  user
пароль: user

### Gitea ###
логин:  gitadmin
пароль: 80198eb7

Выборочная установка сервисов PromUC

Допускается выборочная установка сервисов PromUC посредством скриптов install.sh в каталоге сервиса. После установки будут внесены изменения в файл .order если ранее в нём данный сервис был закомментирован. Например, при первичной установке будут проигнорированы сервисы portainer, memcached, pgadmin, gis:

proxy
fluentbit
postgres
redis
#portainer
rabbitmq
#memcached
framework
gitea
#pgadmin
#gis
updater
ruleengine

При выполнении команды portainer/install.sh -r сервис portainer будет установлен, запущен и убрано комментирование в файле .order.

Добавление сертификатов

Добавление сертификатов будет рассмотрено на примере web браузера Firefox.

  1. Откройте браузер Firefox

  2. Кликните на значке меню в правом верхнем углу и затем выберите Settings:

_images/cert-firefox_1.png
  1. Выберите Privacy & Security и затем в разделе Certificates кликните на View Certificates...:

_images/cert-firefox_2.png
  1. Выберите Authorities и кликните на Import...:

_images/cert-firefox_3.png
  1. Перейдите в папку /opt/promuc/proxy/conf/certs и выберите сертификат ca.crt, нажмите Open:

_images/cert-firefox_4.png
  1. Установите флажки и кликните на ОК:

_images/cert-firefox_5.png

Тестовый запуск интерфейса пользователя

Для запуска интерфейса пользователя необходимо в адресной строке web браузера ввести адрес https://имядомена, для данного примера он будет https://promuc.loc:

_images/start_url1.png

Далее необходимо ввести учётные данные, которые вывел установщик:

_images/start_url_21.png

Интерфейс пользователя откроется в окне web браузера:

_images/start_url_51.png

Cведения о порядке работы c системой можно найти в Руководстве пользователя.