Развертывание Nomad
Предварительные требования
- .NET Core SDK 3.1 или более поздней версии
- Erlang OTP
- RabbitMQ Server
- Git
Warning
Версии Erlang и RabbitMQ должны быть совместимы согласно Таблицы совместимости версий RabbitMQ и Erlang Подробности настройки программного обспечения согласно предварительныъх требований
Установка
Для установки Т2 Интеграция с использованием Nomad скачайте пакет для развертывания T2.Integration.Nomad и распакуйте его на локальном диске. Для простоты настройки желательно распаковать архив Т2 Интеграция в корень диска.
Развертывание общего хранилища с инсталляциями программ с использованием сервиса Nginx
Удалить файл с расширением pid в папке T2.Integration\Nginx\logs.
Из Command Prompt от имени Администратора запустить файл T2.Integration\Nginx\!stop.cmd, затем запустить файл T2.Integration\Nginx\!start.cmd тоже от имени Администратора.
В результате должен запуститься браузер со страницей http://localhost:880. Если браузер не открылся, запустите ссылку вручную.
Important
Важно убедиться с работоспособности вэб-хоста.
Должна отобразиться следующая информация:
Warning
Если при выполнении команд !stop и !start возникнет ошибка (как ниже) добавьте явно путь на nginx.exe в cmd-файл nginx: [error] OpenEvent("Global\ngx_stop_7060") failed (2: The system cannot find the file specified)
- При выборе Артефакты (%Nginx%/html/nomad) (или же напрямую набрав в браузере http://localhost:880/nomad/) должен открыться список артефактов (zip-архивов с инсталляциями программ).
Warning
Перезапуск сервиса Nginx (удаление файла с расширением pid, запуск !stop.cmd и !start.cmd) нужно выполнять всякий раз после перезапуска компьютера. После перезапуска Nginx необходимо убедиться, что список zip-архивов с инсталляциями программ открывается.
Развертывание локального кластера Nomad
Warning
Убедитесь, что на компьютере разрешено выполнение сценариев PowerShell. Подробности настройки здесь Сценарии PowerShell
Запустите PowerShell от имени Администратора.
Запустить на выполнение файл T2.Integration\Cluster_installcluster.cmd.
При развертывании кластера устанавливается децентрализованный отказоустойчивый discovery-сервис Consul от компании HashiCorp, а также средство оркестрации Nomad этой же компании.
В процессе выполнения командного файла в выдаваемом диалоговом окне перейти на вкладку Log on, на которой установить переключатель в положение This account и указать свой логин и два раза пароль:
далее нажать два раза Enter.
- После развертывания кластера должен запуститься браузер со страницами
- http://127.0.0.1:8500/ui/dc1/services (главная страница сервиса Consul) и
- http://<имя_компьютера>.node.devnomad:4646/ui/jobs (главная страница средства оркестрации Nomad).
Если браузер не открылся, то нужно запустить его вручную и открыть указанные страницы, заменив **<имя_компьютера>** на имя своего компьютера.
Вид указанных страниц:
Установка пользовательского интерфейса HashiUI для Nomad
Запустить на выполнение файл T2.Integration\Cluster_run_01_hashiui.cmd от имени Администратора.
Убедиться, что сервис HashiUI запустился в главном окне оркестратора Nomad (http://<имя_компьютера>.node.devnomad:4646/ui/jobs):
- Сам пользовательский интерфейс HashiUI должен быть доступен по адресу http://<имя_компьютера>.node.devnomad:3000/nomad/global/cluster:
Установка сервера аутентификации T2.XUM.OAuth
Запустить на выполнение файл T2.Integration\Cluster_run_02_xum.oauth.cmd от имени Администратора.
Убедиться с помощью HashiUI, что сервер аутентификации T2.XUM.OAuth запустился:
- Проверить работоспособность сервера аутентификации, открыв в Google Chrome ссылку https://localhost:9999/.
Important
Важно убедиться с работоспособности сервера аутентификации.
Должна отобразиться следующая информация:
Установка вэб-хоста для единого клиента T2.XUM.Web.Host
Запустить на выполнение файл T2.Integration\Cluster_run_03_XUM_WebHost.cmd от имени Администратора.
Дождаться, пока в HashiUI не отобразится информация, что T2.XUM.Web.Host запущен:
- Проверить работоспособность вэб-хоста, открыв в Google Chrome ссылку https://localhost:1111/ .
Important
Важно убедиться с работоспособности вэб-хоста.
Должна отобразиться следующая информация:
- В окне идентификации указать логин Admin и пароль 1, после чего нажать Войти. В итоге отобразится следующее:
Установка сервера настройки Т2 Интеграция
Перед установкой сервера настройки Т2 Интеграция необходимо настроить брокер сообщений RabbitMQ. В частности, необходимо создать пользователя, от имени которого сервер настройки Т2 Интеграция будет подключаться к RabbitMQ, и виртуальный хост, который будет использоваться для передачи сообщений с помощью Т2 Интеграция.
В файле T2.Integration\Config\T2.DIP.Server.Web.Api$CustomConfig-T2.DIP.Server.Web.Api\appsettings.json указать актуальные значения следующих параметров:
{
...
"AppSettings": {
...
"MassTransit": {
...
"HostName": "localhost", // for RabbitMQ
"VirtualHost": "DIP", // for RabbitMQ
"UserName": "dip", // for RabbitMQ
"Password": "dip", // for RabbitMQ
...
},
"GenerateSolutionBasePath": "C:\\T2.Integration\\RuntimeModel",
"NuGetPackage": {
...
"Repository": "C:\\T2.Integration\\LocalPackages",
...
}
},
"ConnectionStrings": {
"DIPConnectionString": {
"ConnectionString": "Data Source=BY01-1229.topsoft.local\\SQL2016;Initial Catalog=T2.DIP.Server;Integrated Security=True",
...
}
},
...
"Xaf": {
...
"ConnectionStrings": {
"Default": "Data Source=BY01-1229.topsoft.local\\SQL2016;Initial Catalog=T2.DIP.Server;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;",
"EasyTest": "Data Source=BY01-1229.topsoft.local\\SQL2016;Initial Catalog=T2.DIP.Server;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;"
}
},
...
"GitOptions": {
...
"RemotePath": "C:\\T2.Integration\\GitRepos\\BUILD\\Origin\\",
"LocalPath": "C:\\T2.Integration\\GitRepos\\BUILD\\Users\\"
}
}
Important
Для параметров Data Source в ConnectionString явно указать имя сервера и его экземпляра (инстанса). Например, by01-1229.topsoft.local\SQL2016 Не использовать параметры подобные: .\SQL2016 или (local)\SQL2016
Также необходимо использовать исходное имя инстанса вместо алиаса, которое может задаваться в ''SQL Server Configuration Manager''. Т.е., например, вместо имени с указанием алиаса by01-1229.topsoft.local\SQL2016_ESB использовать имя с указанием реального имени инстанса by01-1229.topsoft.local\SQL2016.
Скопировать файл T2.Integration\Config\T2.DIP.Server.Web.Api$CustomConfig-T2.DIP.Server.Web.Api\appsettings.json внутрь архива T2.Integration\Config\T2.DIP.Server.Web.Api$CustomConfig-T2.DIP.Server.Web.Api.zip.
Обновленный архив T2.Integration\Config\T2.DIP.Server.Web.Api$CustomConfig-T2.DIP.Server.Web.Api.zip скопировать в папку T2.Integration\Nginx\html\nomad (здесь находится список артефактов, доступный по ссылке http://localhost:880/nomad/).
Запустить на выполнение файл T2.Integration\Cluster_run_04_T2DIPServerWebApi.cmd от имени Администратора.
Дождаться, пока в HashiUI не отобразится информация, что T2.DIP.Server.Web.Api запущен:
- Открыть лог сервера настройки Т2 Интеграция, перейдя в HashiUI по следующему пути: Allocations => для T2DIPServerWebApi в колонке ID нажать на текущий идентификатор => в открывшейся форме в панели инструментов нажать кнопку Logs => в открывшейся форме на панели слева установить курсор на файл T2DIPServerWebAPI.stdout.0. После завершения запуска сервера T2.DIP в конце лога должна появится запись вида (время запуска сервера занимает от 2 до 5 минут):
Application started. Press CTRL+C to shut down.
- Проверить, что T2.DIP.Server.Web.Api стал доступен на вэб-хосте общего клиента «ТОП СОФТ», нажав на странице вэб-хоста в браузере Google Chrome кнопку Подключить для T2.DIP. В итоге должно открыться главное окно сервера настройки Т2 Интеграция:
имя_компьютера>