Содержание

Инструкция по развёртыванию модуля Триггеров в Windows: версия 17.Х+


Версия модуля триггеров 17.Х. работает c версией системы 3.23 и выше

Требования к ПО на сервере

  1. IIS 8.5.
  2. Windows server 2019 и выше.
  3. Один из вариантов СУБД:
    • MSSQL (тестировалось на версии 2016 Express Edition+, минимальная версия MSSQL 2019) + Microsoft SQL Server Management Studio (SSMS) соответствующей версии;
    • PostgreSQL версии 13+ (возможна установка на более раннюю версию Postgres, но тогда потребуется вносить правки в код).
  4. .net 6 hosting bundle (с версии 17.25 и выше, до версии 17.22 включительно достаточно .net 5).

Настройка и установка Системы

  1. Устанавливаем ОС Windows Server.
  2. Устанавливаем СУБД.
  3. Устанавливаем Net 6 hosting bundle.
  4. Добавляем роль IIS через графическую утилиту «Диспетчер Сервера».
  5. Добавляем учетную запись пользователя в Систему, от имени которого будет работать сервис через оснастку «Локальные пользователи и группы».

Компоненты Системы

Начиная с версии 17 система «модуля Триггеров» является многокомпонентной. Каждая компонента должна разворачиваться отдельно.

Версия 17.x может корректно работать только с версиями Системы ADVANTA 3.23 и выше.

Настройка MSSQL

  1. Открыть оснастку SQL Server Management Studio.
  2. Создать новую базу данных. В названии указать любое значение (например triggers).
  3. Создать учетную запись для базы данных модуля триггеров.
    • В окне «Обозреватель объектов» (Object Explorer) раскрыть «Безопасность» (Security), нажать правой кнопкой мыши на «Имена входа» (Logins) и выбрать «Создать имя» (New Login).
    • В разделе «Общие» (General):
      • В поле «Имя входа» (Login name) ввести любое значение (например triggers). Введённый логин затем понадобится указать на сервере приложения для доступа к базе данных.
      • Ввести пароль учетной записи. Введённый пароль затем понадобится указать на сервере приложения для доступа к базе данных.
      • Выставить опцию «Проверка подлинности SQL Server» (SQL Server authentication).
      • Убрать опцию «Требовать использование политики паролей» (Enforce password policy).
      • Выставить используемый язык «Язык по умолчанию» (Default language), выбрав в выпадающем меню «Русский» (Russian).
      • Выставить используемую базу данных «База данных по умолчанию», выбрав в выпадающем списке меню базу, созданную на шаге 2.1.1.2.
    • Нажать «OK».
  4. Открыть созданную учетную запись. Перейти на страницу «Сопоставление пользователей» (User Mapping):
    • В окне «Пользователи, сопоставленные с этим именем входа» (User mapped to this login) в столбце «Схема» (Map) установить галочку напротив базы, созданную на шаге 2.1.1.2.
    • В окне «Членство в роли базы данных для: <выбранная база данных>» (Database role for membership for) выставить права db_owner.

Настройка PostgreSQL

  1. Открываем pgAdmin.
  2. Добавляем пользователя.
  3. Создаем новую БД.
  4. При первичном развёртывании или обновлении мажорной версии, необходимо обновить схему базы данных. Для этого первый запуск должен выполниться с ключом Adavanta/Database/MigrateOnStartup = true, последующие запуски могут осуществляться с любым значением данного ключа.

Развёртывание сайта

Настройка IIS

  1. Открываем утилиту управления IIS «Диспетчер служб IIS».
  2. Создаем новый пул для приложения:
    • имя - любое;
    • пул приложения - «Без управляемого кода»;
    • режим управляемого конвейера - «Встроенный».
  3. После создания пула заходим в «Дополнительные параметры», находим пункт «Удостоверение» и меняем его на использование «Особой учетной записи», в качестве учетной записи используем созданную выше учетную запись пользователя.
  4. В этом же окне «Дополнительные параметры» находим пункт «Режим запуска» и выбираем режим «Always running» - необходимо чтобы процесс всегда работал и не завершался при простое (с версии 17.х не актуально).

  5. Создаем новый сайт:
    • имя - любое;
    • пул - выбираем только что созданный нами пул приложения;
    • физический путь - выбираем путь, где будет храниться исполняемые файлы приложения;
    • привязка - вводим доменное имя сайта.
  6. Выбираем в списке сайтов вновь созданный сайт, заходим в контекстное меню и выбираем пункт «Редактировать разрешение», переходим на вкладку «Безопасность» и добавляем туда созданную выше учетную запись пользователя.
  7. Заходим в основные настройки сайта и нажимаем «Тест настроек», должно открыться модальное окно, в котором все пункты будут отмечены зелеными индикаторами, говорящие об успешности настройки доступа сайта и файловой системы.

Установка и настройка сайта

  1. Копируем в папку, указанную в настройках сайта, исполняемый файлы из полученного архива с приложением.
  2. Открываем файл appsettings.json и находим секцию ConnectionStrings, меняем в ней адрес SQL сервера и название БД.
  3. Если необходима диагностика, почему не запускается приложение, необходимо в файле web.config найти секцию aspNetCore и поменять параметр stdoutLogEnabled на true.

Описание настроек сайта

Настройки приложения осуществляются в файле appsettings.json. Так как приложение можно запустить в различных конфигурациях, то в проекте несколько файлов типа: appsettings.ConfigurationName.json.

При получении архива для распространения с исполняемыми файлами используется файл с настройками appsettings.json.

Основной раздел

WorkingDirectory - относительный или абсолютный путь, по которому будет размещаться рабочая папка. Значение по умолчанию: external (относительный путь).

Раздел Logging

Данный раздел настраивается в соответствии с правилами ведения журнала в .NET Core.

Подраздел File

Раздел ADVANTA

Подраздел Alerts
Подраздел SmtpServer

Содержит настройки smtpсервера для отправки e-mail уведомлений:

Подраздел Rebus

В данном разделе указываются параметры подключения к Базе данных Системы ADVANTA к шине обмена сообщениями Rebus. Вид транспорта и строка подключения к БД ConnectionString должны быть идентичны параметрам, используемым в настройках Системы ADVANTA.

    "Rebus": {
      //Варианты транспорта: "MSSQL", "PostgreSql"
      "Transport": "PostgreSql",
 
      // пример строки подключения для транспорта "MSSQL"
      //"ConnectionString": "Data Source = SqlServerName;Database=AdvantaRebus;Trusted_Connection=True;MultipleActiveResultSets=true", 
 
      // пример строки подключения для транспорта "PostgreSql"
      "ConnectionString": "User ID=username;Password=userpwd;Host=localhost;Port=5432;Database=AdvantaRebus;", 
 
      "InputQueueName": "bus_triggers_queue", // "Bus_TriggersInputQueue" - для транспорта "MSSQL"
      "SubscriptionsTableName": "Bus_TriggersInputQueue_Subscriptions"
      "PostgreSqlMessagesTableName": "bus_triggersinputqueue" //используется только для транспорта "PostgreSql"
    }

Раздел Database

В этом разделе указываются настройки подключения к собственной служебной Базе данных модуля Триггеров, отдельной от БД Системы ADVANTA.

  "Database": {
    //Варианты провайдеров: "MSSQL", "PostgreSql"
    "Provider": "PostgreSql",
 
    // пример строки подключения для провайдера "MSSQL"
    //"ConnectionString": "Data Source = SqlServerName;Database=AdvantaTriggers;Trusted_Connection=True;MultipleActiveResultSets=true",
 
    // пример строки подключения для провайдера "PostgreSql"
    "ConnectionString": "User ID=username;Password=userpassword;Host=localhost;Port=5432;Database=AdvataTriggers;",
    "MigrateOnStartup": "true"
  },

Флаг true может потребоваться только если есть возможность обновления и развёртывания схемы данных через миграции (например, во время разработки или создания локальной базы). Если значение флага установлено в true, потребуются права на создание, изменение, удаление таблиц и индексов.

Раздел Module

Раздел HashiCorpVault

Ссылка на секрет в Vault могут прописываться для любых значений строковых параметров в любых разделах файла конфигурации (кроме раздела HashiCorpVault) в формате: {$your_hashicorp_vault_key$}.

Пример для параметра: ConnectionString: {$triggers_db_connection$}.

Развёртывание агента

Установка и настройка

  1. Исполняемые файлы публикуются в подпапку Agent после публикации. Содержимое папки может быть перенесено в любую другую папку хоста.
  2. По умолчанию агент сконфигурирован как windows service, для развёртывания агента как службы можно воспользоваться инструкцией компании Microsoft. Для запуска агента в консольном режиме необходимо запустить приложение Advanta.Triggers.Agent с ключом -console.
  3. При старте агент будет пытаться запустить все экземпляры движков, перечисленные в разделе ModulesPaths файла appsettings.json.

Описание настроек агента

Настройки приложения осуществляются в файле appsettings.json. Так как приложение можно запустить в различных конфигурациях, то в проекте несколько файлов типа: appsettings.ConfigurationName.json. При получении архива для распространения с исполняемыми файлами используется файл с настройками appsettings.json.

Раздел Logging

Данный раздел настраивается в соответствии с правилами ведения журнала в .NET Core.

Подраздел File

Основной раздел

Данный раздел файла appsettings.json мониторится агентом динамически, поэтому пути до управляемых Engine могут быть прописаны как до старта, так и после старта агента. При добавлении очередного пути, агент пытается определить есть ли Engine по этому пути. Если есть, то определяет стартовал ли Engine, если нет, то стартует его.

При удалении пути агент посылает соответствующему Engine модулю команду shutdown.

Запрос состояния агента

Для получения информации по текущему состоянию агента, необходимо в папку агента положить файл status без расширения. Содержимое файла не читается. После того как агент обнаружит файл, он сформирует информацию о текущем состоянии движков и создаст или обновит файл output.txt. Информация о статусе так же будет записана в лог. Файл status будет автоматически удалён.

Развёртывание Engine

Установка и настройка

  1. Исполняемые файлы публикуются в подпапку Engine после публикации. Содержимое папки может быть перенесено в любую другую папку хоста.
  2. Движок должен располагаться на том же хосте, что и сайт.
  3. Движок может быть запущен вручную либо передан под управление агенту.
  4. Одному сайту должен соответствовать один экземпляр работающего движка.

Описание настроек агента

Настройки приложения осуществляются в файле appsettings.json. Так как приложение можно запустить в различных конфигурациях, то в проекте несколько файлов типа: appsettings.ConfigurationName.json.

При получении архива для распространения с исполняемыми файлами используется файл с настройками appsettings.json.

Для запуска движка необходимо использовать те же настройки appsettings.json, которые используются для запуска сайта.

Отличаться может только раздел Logging. В противном случае движок и сайт не смогут найти друг друга в процессе инициализации канала коммуникации по UDP протоколу.