Установка
В не зависимости от выбраного вида установки 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
DNS_SERVER - Список доверенных IP-адресов DNS серверов.
Setup DNS_SERVER
export DNS_SERVER=['8.8.8.8']
VERSION - версия агента, которую пользователь хочет установить.
Setup VERSION
export VERSION=1.9.1
- docker
- deb
- rpm
- source
- ansible
Перед развертыванием убедитесь, что у вас установлен 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-agent командой:
Configuration file setup
cat <<EOF > config-agent.yaml
---
graceful-shutdown: 10s
logger:
level: DEBUG
fqdn-rules:
strategy: dns
extapi:
svc:
def-daial-duration: 10s
sgroups:
dial-duration: 3s
address: 'tcp://${HBF_SERVER}:${HBF_SERVER_PORT}'
sync-status:
interval: 3s #mandatory
push: true
netlink:
watcher: #netlink watcher
linger: 1s
base-rules:
networks: ['${HBF_SERVER}/32']
dns:
nameservers: ${DNS_SERVER}
proto: tcp
port: 53
dial-duration: 3s
read-duration: 5s #default
write-duration: 5s #default 5s
retries: 5 #default 1
retry-timeout: 3s #default 1s
telemetry:
useragent: "string"
endpoint: 0.0.0.0:9660
metrics:
enable: true
healthcheck:
enable: true
EOF
Собираем образ hbf-agent командой:
docker build -f docker/Dockerfile.agent --tag to-nft:v${VERSION} .
Запускаем hbf-agent командой:
docker run \
-d \
-v ./config-agent.yaml:/opt/swarm/etc/to-nft/config-agent.yaml \
--name hbf-agent \
--entrypoint "/app/bin/to-nft" \
--privileged \
--user=0 \
to-nft:v${VERSION} -config /opt/swarm/etc/to-nft/config-agent.yaml
Настроим необходимые переменные окружения командой:
Environment setup
export PACKAGE_TYPE=deb
export URL=https://github.com/H-BF/sgroups/releases/download
export RELEASE=v$VERSION/to-nft-$VERSION-any.$PACKAGE_TYPE
Скачиваем и устанавливаем deb-пакет командой:
Install deb package
sudo wget -O /tmp/to-nft.deb $URL/$RELEASE
sudo dpkg -i /tmp/to-nft.deb
Создайте конфигурационный файл для hbf-agent командой:
Configuration file setup
mkdir -p /opt/swarm/etc/to-nft
cat <<EOF > /opt/swarm/etc/to-nft/config-agent.yaml
---
graceful-shutdown: 10s
logger:
level: DEBUG
fqdn-rules:
strategy: dns
extapi:
svc:
def-daial-duration: 10s
sgroups:
dial-duration: 3s
address: 'tcp://${HBF_SERVER}:${HBF_SERVER_PORT}'
sync-status:
interval: 3s #mandatory
push: true
netlink:
watcher: #netlink watcher
linger: 1s
base-rules:
networks: ['${HBF_SERVER}/32']
dns:
nameservers: ${DNS_SERVER}
proto: tcp
port: 53
dial-duration: 3s
read-duration: 5s #default
write-duration: 5s #default 5s
retries: 5 #default 1
retry-timeout: 3s #default 1s
telemetry:
useragent: "string"
endpoint: 0.0.0.0:9660
metrics:
enable: true
healthcheck:
enable: true
EOF
Запустите сервис hbf-server.service командой:
Agent service start
systemctl enable hbf-agent.service
systemctl start hbf-agent.service
Настроим необходимые переменные окружения командой:
Environment setup
export PACKAGE_TYPE=rpm
export URL=https://github.com/H-BF/sgroups/releases/download
export RELEASE=v$VERSION/to-nft-$VERSION-any.$PACKAGE_TYPE
Создайте конфигурационный файл для hbf-agent командой:
Configuration file setup
mkdir -p /opt/swarm/etc/to-nft
cat <<EOF > /opt/swarm/etc/to-nft/config-agent.yaml
---
graceful-shutdown: 10s
logger:
level: DEBUG
fqdn-rules:
strategy: dns
extapi:
svc:
def-daial-duration: 10s
sgroups:
dial-duration: 3s
address: 'tcp://${HBF_SERVER}:${HBF_SERVER_PORT}'
sync-status:
interval: 3s #mandatory
push: true
netlink:
watcher: #netlink watcher
linger: 1s
base-rules:
networks: ['${HBF_SERVER}/32']
dns:
nameservers: ${DNS_SERVER}
proto: tcp
port: 53
dial-duration: 3s
read-duration: 5s #default
write-duration: 5s #default 5s
retries: 5 #default 1
retry-timeout: 3s #default 1s
telemetry:
useragent: "string"
endpoint: 0.0.0.0:9660
metrics:
enable: true
healthcheck:
enable: true
EOF