Перейти к основному содержимому

Установка

Перед развертыванием, пользователь должен решить, где hbf-server будет хранить данные. Предоставляется два варианта для выбора:

Независимо от выбранного метода установки hbf-server, необходимо сконфигурировать следующие переменные окружения:

HBF_SERVER - IP-адрес hbf-server.

Setup HBF_SERVER
export HBF_SERVER=0.0.0.0

HBF_SERVER_PORT - порт, используемый hbf-server.

Setup HBF_SERVER_PORT
export HBF_SERVER_PORT=9650

VERSION - версия hbf-server.

Setup VERSION
export VERSION=1.9.1

SG_STORAGE_TYPE - тип хранилища для hbf-server. Допустимые значени: internal или postgres.

В случае выбора типа хранилища "In Memory" установите переменную окружения командой:

Setup SG_STORAGE_TYPE
export SG_STORAGE_TYPE=internal

В случае выбора типа хранилища "Postgres" установите переменную окружения командой:

Setup SG_STORAGE_TYPE
export SG_STORAGE_TYPE=postgres

SG_STORAGE_POSTGRES_URL - URL для подключения к Postgres базе данных. Для корректного формирования воспользуйтесь командой:

Setup SG_STORAGE_POSTGRES_URL
cat <<EOF > setup.sh
#!/bin/bash
SG_DB_USER="user"
SG_DB_PASSWORD="password"
SG_DB_URL="localhost:5432"
SG_DB_NAME="swarm"

SG_STORAGE_POSTGRES_URL="postgres://${SG_DB_USER}:${SG_DB_PASSWORD}@${SG_DB_URL}/${SG_DB_NAME}?sslmode=disable"

export SG_STORAGE_POSTGRES_URL=$SG_STORAGE_POSTGRES_URL
EOF
sh setup.sh

Перед развертыванием убедитесь, что у вас установлен docker:

Get docker version
docker -v
Клонируем репозиторий, переходим в директорию репозитория и переключаемся на тег необходимой версии командой:
Git setup
git clone https://github.com/H-BF/sgroups
cd sgroups
git fetch --tags --all
git checkout tags/v${VERSION}
Создайте конфигурационный файл для hbf-server командой:
Configuration file setup
cat <<EOF > config-server.yaml
---
logger:
# log level
level: INFO

metrics:
# enable api metrics
enable: true

healthcheck:
# enables|disables health check handler
enable: true

server:
# server endpoint
endpoint: tcp://${HBF_SERVER}:${HBF_SERVER_PORT}
# graceful shutdown period
graceful-shutdown: 30s
EOF
Собираем образ hbf-server командой:
docker build -f docker/Dockerfile.server --tag sgroups:v$(cat VERSION) .
В случае выбора типа хранилища "In Memory" запустите hbf-server командой:
docker run \
-d \
-v ./config-server.yaml:/opt/swarm/etc/sgroups/config-server.yaml \
--name hbf-server \
--entrypoint "/app/bin/sgroups" \
--env SG_STORAGE_TYPE \
sgroups:v$(cat VERSION) -config /opt/swarm/etc/sgroups/config-server.yaml
В случае выбора типа хранилища "Postgres" запустите hbf-server командой:
sh setup.sh
docker run \
-d \
-v ./config-server.yaml:/opt/swarm/etc/sgroups/config-server.yaml \
--name hbf-server \
--entrypoint "/app/bin/sgroups" \
--env SG_STORAGE_TYPE \
--env SG_STORAGE_POSTGRES_URL \
sgroups:v$(cat VERSION) -config /opt/swarm/etc/sgroups/config-server.yaml

Параметры конфигурационного файла

Для настройки агентов требуется использовать конфигурационный файл, который содержит поля, позволяющие настраивать параметры в соответствии с потребностями пользователей. Так же есть алтьтернативный способ - переменные окружения. Обратите внимание, что переменные окружения являются более приоритетными, чем параметры из файла. Так же часть параметров можно настроить через файл, а часть через переменные окружения.

Параметры файла config-server.yaml
ПараметрОписаниеТипОбязательно

logger.level

SG_LOGGER_LEVEL

Уровень логгирования. Допустимые значения: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, PANIC.StringНет

server.endpoint

SG_SERVER_ENDPOINT

IP адрес и порт hbf-сервер. Рекомендуемое значение: 0.0.0.0:9650.StringДа

server.graceful-shutdow

SG_SERVER_GRACEFUL_SHUTDOW

Определяет период времени, в течение которого процесс сервера должен корректно завершиться. По истечению периода, процесс завершиться с кодом 1. Значение по умолчанию: 10s

StringНет

telemetry.metrics.enable

SG_METRICS_ENABLE

Включить/Отключить возможность получения метрик. Значение по умолчанию: true. Пример получения метрик: curl 0.0.0.0:9650/metrics.

BooleanНет

healthcheck.enable

SG_HEALTHCHECK_ENABLE

Включить/Отключить возможность получения информации о статусе hbf-сервера. Значение по умолчанию: true. Пример получения статуса: curl 0.0.0.0:9650/healthcheck.

BooleanНет

storage.type

SG_STORAGE_TYPE

Подключаемый тип базы данных. Значение по умолчанию: internal. Допустимые значения: internal, postgres.

StringНет

storage.postgres.url

SG_STORAGE_POSTGRES_URL

URL для подключения к базе данных Postgres. При использовании storage.type:postgres, данный параметр должен иметь корректный URL подключения. В ином случае, в параметре нет необходимости.

StringНет