Avanpost DAG : 2.1 Установка Avanpost DAG

Шаг 1. Установить Nginx

Для этого требуется:

1.1. Установить пакет "nginx":

sudo apt-get install nginx

1.2. Запустить сервис "nginx" и добавить его в автозапуск:

sudo systemctl start nginx
sudo systemctl enable nginx

1.3. Разрешить локальный проброс портов:

sudo setsebool -P httpd_can_network_connect 1

Шаг 2. Настроить iptables

Если установлен iptables, выполнить настройки ниже

Для этого требуется добавить доступ к протоколам HTTP и HTTPS с помощью команд:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables-save -f /etc/sysconfig/iptables

Шаг 3. Создать пользователя "avanpost"

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

sudo useradd -M avanpost


Шаг 4. Создать каталог для приложения и настроить доступ к нему

Для этого необходимо выполнить команды:

sudo mkdir -p /opt/avanpost/
sudo chown -R avanpost:avanpost /opt/avanpost


Шаг 5. Установить dotnet-sdk

Примечание:

Дополнительная информация по установке: https://docs.microsoft.com/ru-ru/dotnet/core/install/linux-rhel#supported-distributions

Для этого требуется:

5.1. Установить пакет:

sudo apt-get install dotnet-sdk-8.0

5.2. Проверить установку с помощью команды:

dotnet --info

Пример корректного вывода команды

dotnet --info
>.NET SDKs installed:
> 8.0.100 [/usr/share/dotnet/sdk]
>.NET runtimes installed:
> Microsoft.AspNetCore.App 8.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
> Microsoft.NETCore.App 8.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Шаг 6. Распаковать дистрибутив

Для этого требуется:

6.1. Авторизоваться под пользователем "avanpost":

sudo su - avanpost

6.2. Перейти в каталог "/opt/avanpost":

cd /opt/avanpost

6.3. Добавить файл дистрибутива DAG в каталог "/opt/avanpost".

6.4. Создать каталог "/opt/avanpost/dag":

mkdir /opt/avanpost/dag

6.5. Распаковать архив с дистрибутивом с помощью команды по шаблону:

Шаблон команды

unzip Avanpost.Dag.[Version].zip -d dag

Заменить в команде [Version] на номер актуальной версии Avanpost DAG.

6.6. Создать каталог конфигурации "/opt/avanpost/config":

mkdir /opt/avanpost/config

6.7. Разместить файл лицензии "license.xml" в каталоге "/opt/avanpost/config" с помощью SFTP клиента.

Примечание:

Вместо SFTP можно воспользоваться командой scp:

Шаблон команды

scp [Путь до файла] [реквизиты для подключения по SSH]:[Полный путь папки назначения]

Шаг 7. Настроить файлы конфигурации

Для этого требуется:

7.1. Для создания новой конфигурации скопировать файл "dag/configs/config.example" в "/opt/avanpost/config/dag.config" и открыть его для редактирования:

cp dag/configs/config.example /opt/avanpost/config/dag.config
nano config/dag.config

7.2. Установить значения параметров в соответствии с таблицей: 

Таблица – Описание и настройка параметров конфигурационного файла

Параметр

Описание

Значение

rootUser

Привилегированный пользователь в домене

Указать логин пользователя по шаблону:  [Realm]\\[логин]

defaultRealm

Домен по умолчанию. Realm определяет область аутентификации пользователей.

Например: avanpost.local

host

IP адрес сервера каталога LDAP

Например: 192.168.1.44

bindDN

DN для привязки к LDAP-серверу (DN – идентифицирующее имя объекта в LDAP-директории)

Полный DN в формате: cn=[Имя],dc=[Домен2ур],dc=[Домен1ур]

password

Пароль пользователя

Указать пароль пользователя

usersBase

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

Указать путь до директории

userNameAttribute

Задает атрибут, который будет использоваться для идентификации имени пользователя при аутентификации.


Параметр не требуется для управляемой системы MS Active Directory, и может быть удален из конфигурации.

connectionString

Строка подключения к БД

Указать строку по шаблону:
host=127.0.0.1;database=dag;username=db_dag_user;password=[пароль пользователя db_dag_user]

7.3. Создать файлы конфигурации кластера:

cp dag/configs/dag/cluster.dag.config.json /opt/avanpost/config/dag-cluster.config
cp dag/configs/dagcollector/cluster.dagcollector.config.json /opt/avanpost/config/dagcollector-cluster.config

Шаг 8. Настроить сервисы "dag" и "dagcollector"

Для этого требуется:

8.1. Скопировать пример файла конфигурации сервиса "dag" в каталог "systemd":

sudo cp /opt/avanpost/dag/configs/dag/dag.service /etc/systemd/system/dag.service

8.2. Скопировать пример файла конфигурации сервиса "dagcollector" в каталог "systemd":

sudo cp /opt/avanpost/dag/configs/dagcollector/dagcollector.service /etc/systemd/system/dagcollector.service

8.3. Открыть для редактирования файл "/etc/systemd/system/dag.service":

sudo nano /etc/systemd/system/dag.service

8.4. Заполнить файл "/etc/systemd/system/dag.service" по примеру:

[Unit]
Description=DAG App

[Service]
WorkingDirectory=/opt/avanpost/dag/web
ExecStart=/usr/bin/dotnet /opt/avanpost/dag/web/Avanpost.Dag.WebHost.dll
Restart=always
RestartSec=10
SyslogIdentifier=dag
User=avanpost

# В строке ниже задается локальный порт на котором будет подниматься приложение
Environment="ASPNETCORE_URLS=http://localhost:5001/;http://localhost:5002/"
Environment="ASPNETCORE_ENVIRONMENT=Production"
Environment="DOTNET_PRINT_TELEMETRY_MESSAGE=false"
Environment="DAG_CFG=/opt/avanpost/config/dag.config"
Environment="CLUSTER_CFG=/opt/avanpost/config/dag-cluster.config"

[Install]
WantedBy=multi-user.target

8.5. Добавить сервисы "dag" и "dagcollector" в автозапуск и запустить их:

sudo systemctl daemon-reload
sudo systemctl enable dag
sudo systemctl enable dagcollector
sudo systemctl start dag
sudo systemctl start dagcollector

Шаг 9. Настроить Nginx

Для этого требуется:

9.1. Открыть файл конфигурации Nginx "/etc/nginx/nginx.conf" для редактирования:

sudo nano /etc/nginx/nginx.conf

9.2. В секцию "http" добавить значение:

map $http_upgrade $connection_upgrade {
  default upgrade;
  "" close;
}

9.3. Скопировать пример файла конфигурации Nginx в "/etc/nginx/sites-enabled.d/avanpost.conf":

sudo cp /opt/avanpost/dag/configs/dag/dag.conf.nginx /etc/nginx/sites-enabled.d/avanpost.conf


9.4. Открыть конфигурационный файл "/etc/nginx/sites-enabled.d/avanpost.conf" для редактирования:

sudo nano /etc/nginx/sites-enabled.d/avanpost.conf

9.5. В конфигурационном файле "/etc/nginx/sites-enabled.d/avanpost.conf" указать доменные имена для сервисов, которые перенаправляются Nginx:

Параметр

Значение

server_name

Адрес web-интерфейса администрирования в формате "adm.[ваш домен]"

[ваш домен] заменить на фактическое доменное имя

Примечание:

Nginx выполняет анализ запрашиваемого доменного имени и перенаправляет запрос на соответствующий порт, где запущен нужный сервис.


9.6. Проверить конфигурацию с помощью команды:

sudo nginx -t

Пример корректного вывода команды

# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

9.7. Перезапустить Nginx:

sudo systemctl restart nginx

Шаг 10. Проверить работу сервера

Для проверки необходимо:

10.1. Открыть веб-браузер и перейти по адресу "http://dag.[ваш домен]" (заменить [ваш домен] на фактическое доменное имя, настроенное на шаге 9.5 данной инструкции).

10.2. Аутентифицироваться с использованием учетной записи, данные которой были указаны в файле "dag.config" в параметре "rootUser" на шаге 7.2 данной инструкции.

Обсуждение