====== Установка и настройка системы под Linux ====== ''Инструкция для размещения ADVANTA на сервере с ОС Linux и СУБД PostgreSQL'' Перед началом настройки системы ознакомьтесь с актуальными требованиями к программному обеспечению. Описание установки системы основывается на том, что уже выполнены требования к программному обеспечению сервера базы данных и сервера приложения, а также имеется в наличии инсталляционный диск системы. Если систему планируется разносить на два сервера, то рекомендуем сначала выполнить настройку сервера базы данных, а затем сервера приложения. Данная инструкция предполагает установку на OC [[https://astralinux.ru/os/server-astra/|Astra Linux]]. ===== Подготовка сервера базы данных ===== Если у вас для системы ADVANTA используется БД MS SQL, развернутая на отдельном сервере под управлением ОС Windows, то инструкцию по подготовке сервера базы данных можно найти [[:product:settings:system:install#подготовка_сервера_базы_данных|здесь]]. Если же у вас для системы ADVANTA база данных будет развертываться под ОС Linux, то используется БД PostgreSQL. Перед началом настройки БД PostgreSQL необходимо включить сетевые репозитории и выполнить установку пакетов: deb cdrom:[OS Astra Linux 1.7.2 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce apt update apt install postgresql-14 Далее необходимо выполнить первичную настройку СУБД PostgreSQL: 1. Выполнить вход в сессию служебного пользователя postgres: su - postgres Работая в сессии служебного пользователя postgres установить пароль администратора СУБД: psql -c "alter user postgres with password '<указать_пароль>'" * Вместо текста <пароль> указать устанавливаемый пароль; * Пароль заключается в одинарные кавычки; * Вся команда заключается в двойные кавычки. Завершить работу в сессии служебного пользователя postgres: exit 2. Наcтроить удаленный доступ к СУБД, для чего в конфигурационном файле /etc/postgresql/14/main/postgresql.conf скорректировать параметр listen_addresses: listen_addresses = '<указать_ip>' 3. В файле /etc/postgresql/14/main/pg_hba.conf добавить строку: host all all <указать_подсеть> scram-sha-256 4. Добавить разрешающее правило файрволла для порта 5432: ufw allow 5432/tcp 5. Перезагрузить службу postgresql: systemctl restart postgresql Далее необходимо создать пустую БД: su - postgres psql CREATE DATABASE "a2nta_db" WITH OWNER = postgres ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8' TABLESPACE = pg_default CONNECTION LIMIT = -1; ALTER DATABASE "a2nta_db" SET search_path TO "$user", public, dbo; CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; GRANT TEMPORARY, CONNECT ON DATABASE a2nta_db TO PUBLIC; GRANT ALL ON DATABASE a2nta_db TO postgres WITH GRANT OPTION; После создания базы данных необходимо выполнить восстановление предоставленного в дистрибутиве дампа базы данных в новую созданную БД ''a2nta_db''. В данный момент по умолчанию дамп БД предоставляется только для MS SQL. Дамп БД для PostgreSQL предоставляется по запросу. Подробную инструкцию по подготовке сервера базы данных можно найти на отдельной странице [[:product:settings:pssql|Настройка базы данных PostgreSQL]]. ===== Подготовка сервера приложения ===== ==== Необходимые пакеты ОС ==== Для работы сервера приложений ADVANTA необходимо установить в операционной системе следующие стандартные пакеты (из репозитория ОС): curl gnupg2 ca-certificates lsb-release debian-archive-keyring wget apt-transport-https Веб-сервер/Прокси (последняя стабильная версия из репозитория ОС или от [[https://nginx.org/ru/download.html|вендора]]): nginx Среды .Net ([[https://learn.microsoft.com/ru-ru/dotnet/core/install|варианты установки]]): wget http://archive.ubuntu.com/ubuntu/pool/main/libx/libxkbfile/libxkbfile1_1.1.0-1_amd64.deb apt install ./libxkbfile1_1.1.0-1_amd64.deb apt install ca-certificates wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null wget https://packages.microsoft.com/config/debian/10/prod.list -O /etc/apt/sources.list.d/microsoft-prod.list apt update apt install dotnet-sdk-6.0 Установка среды .Net также может быть выполнена из официальных репозиториев дистрибутива. Далее необходимо включить сетевые репозитории и выполнить установку пакетов (операции выполняются под учетной записью администратора сервера): deb cdrom:[OS Astra Linux 1.7.0 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-update/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main contrib non-free deb https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free astra-ce backports apt update apt install curl apt install gnupg2 apt install apt-transport-https apt install nginx apt install cifs-utils apt install libldap2-dev apt install libldap-common apt install libldap-2.4-2 В случае, если документы Системы лежат на SMB шаре, отредактировать файл ''/etc/fstab'', добавив в него строку подключения/монтирования: //192.168.X.X/documents/a2nta /mnt/documents/a2nta cifs guest 0 0 Опционально, можно установить базовые шрифты от MS (для использования в отчетах типа "Электронная таблица") и обновить кэш шрифтов сервера: apt install ttf-mscorefonts-installer fc-cache -f -v Опционально. Для использования авторизации в системе ADVANTA через службу Active Directory необходимо установить библиотеку apt install libldap2-dev libldap-common libldap-2.4-2 Приведен пример с анонимным подключением. Строка подключения может отличаться в зависимости от политик безопасности организации. Выполнить настройку https и локального сертификата: dotnet dev-certs https dotnet dev-certs https --trust \\ \\ ==== Настройка системных файлов ==== 1. Загрузить и распаковать файлы приложения ADVANTA на сервер. 2. Создать файл конфигурации приложения (образцы находятся по пути: ''<версия приложения>/SL/config/''). Созданный файл конфигурации разместить в основном каталоге приложения: ''/opt/advanta-app/Advanta/client.config''. Пример созданного файла конфигурации ''client.config'':
Теги: Значения: * ''connectionString'' – строка подключения к базе данных; * ''User'' – пользователь для базы данных; * ''Password'' – пароль пользователя. Теги: Параметр ''value'' – это ссылка, которая отображается в уведомлениях из системы, рассылаемых на почтовые ящики. Для системы ADVANTA необходимо настроить маршрутизацию таким образом, чтобы сервер мог подключиться к самому себе по внешнему адресу. Пример: внешний адрес сервера ''192.168.1.62:5000'', сервер IIS должен корректно заходить по этому адресу. В файле конфигурации системы ADVANTA ''client.config'' необходимо указать корректный путь в параметре ''WebPath''. Для приведенного выше примера: Для этого нужно в настройках Bindings (привязки, в настройках IIS) сайта указать тот внешний адрес системы, но без указания протокола и названия приложения. Теги: 3. В файле ''<версия приложения>/Advanta/appsettings.json'' необходимо указать URL, по которому будет открываться приложение. Пример листинга конфигурационного файла ''appsettings.json'': { "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-Advanta-53bc9b9d-9d6a-45d4-8429-2a2761773502;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { "LogLevel": { "Default": "Debug", "Microsoft.AspNetCore": "Warning" } }, "ASPNETCORE_ENVIRONMENT": "Development", "Kestrel": { "Endpoints": { "Http": { "Url": "https://192.168.16.250:5000" }, } }, "AllowedHosts": "*", "appSettings": { "AppName": "streamline", "FirstUserMail": "support@advanta-group.ru", "support": "bug@advanta-group.ru", "statistics": "statistics@advanta-group.ru", "ConfigurationSettingsFile": "_Resources\\Config\\ConfigFiles\\ConfigurationSettings.xml", "Security_PagesConfig": "_Resources\\Config\\ConfigFiles\\SecuritySettings.xml", "PortletsConfig_File": "_Resources\\Config\\PortletEngine\\EngineConfig.xml", "Projects_StatusFile": "_Resources\\Config\\P2M\\Projects\\ProjectStatuses.xml", "Projects_PriorityFile": "_Resources\\Config\\P2M\\Projects\\ProjectPriority.xml", "errorMode": "debug", "ValidationSettings:UnobtrusiveValidationMode": "None", "SoapServicesAspNetCompatibility" : "false" }, "FormOptions": { "ValueCountLimit": "2048" } } Рекомендуется при разворачивании Системы использовать протокол ''https'', вместо ''http'', т.к. протокол ''http'' считается устаревшим. Раздел Системы с диаграммой Ганта доступен только при работе Системы через ''https''. Информация о переводе Системы с протокола ''http'' на использование протокола ''https'' находится на отдельной [[:product:settings:system:protocol_change|странице]]. ==== Выбор языка интерфейса системы ==== На данный момент доступно 4 языка на выбор: * русский (по-умолчанию); * английский; * чешский; * украинский. Для выбора языка, отличного от русского, нужно: - Открыть на редактирование файл ''globalization.config''. - Найти строку: - Изменить в ней значение параметра ''uiCulture'' на: * ''uk-UA'' , если нужен украинский язык интерфейса. * ''cs-CZ'' , если нужен чешский язык интерфейса. * ''en'' , если нужен английский язык интерфейса. Для возврата к русскому языку нужно установить значение ''ru-Ru''. ==== Получение лицензии ==== - Необходимо получить у менеджера ADVANTA архив GetLicenseInfo и распаковать его на сервере. - Сгенерировать файл запроса лицензии:dotnet Advanta.GetLicenseInfo.dll - Сгенерированный файл ''_sl.dat'' отправить менеджеру ADVANTA. - Получить от менеджера ADVANTA файл лицензии ''sl.lic'' и скопировать его в /''opt/advanta-app/Advanta/''. - Запускать приложение в папке ''/opt/advanta-app/Advanta/'' командой:dotnet Advanta.dll ==== Убедиться в работоспособности приложения ==== Выполнить настройку службы ADVANTA: 1. Создать файл службы ''/etc/systemd/system/Advanta.service''. Пример файла службы ''Advanta.service'': [Unit] Description=Advanta Service [Service] # will set the Current Working Directory (CWD). Worker service will have issues without this setting WorkingDirectory=/opt/advanta-app/Advanta # systemd will run this executable to start the service # if /usr/bin/dotnet doesn't work, use `which dotnet` to find correct dotnet executable path ExecStart=/usr/bin/dotnet /opt/advanta-app/Advanta/Advanta.dll # to query logs using journalctl, set a logical name here SyslogIdentifier=AdvantaService # Use your username to keep things simple. # If you pick a different user, make sure dotnet and all permissions are set correctly to run the app # To update permissions, use 'chown yourusername -R /srv/HelloWorld' to take ownership of the folder and files, # Use 'chmod +x /srv/HelloWorld/HelloWorld' to allow execution of the executable file User=root # ensure the service restarts after crashing Restart=always # amount of time to wait before restarting the service RestartSec=5 # This environment variable is necessary when dotnet isn't loaded for the pecified user. # To figure out this value, run 'env | grep DOTNET_ROOT' when dotnet has been loaded into your shell. Environment=DOTNET_ROOT=/usr/share/dotnet [Install] WantedBy=multi-user.target systemctl daemon-reload Путь к исполняемому файлу ''/usr/bin/dotnet'' может отличаться в зависимости от дистрибутива. 2. Добавить созданную службу в автозапуск: systemctl enable advanta После выполнения всех настроек и проверки корректного включения и работы приложения ADVANTA, необходимо выполнить: dotnet /opt/advanta-app/Updates/Bin/Advanta.Migration/Advanta.Migration.dll /opt/advanta-app/Advanta/client.config ==== Сервис для обеспечения работы таймера ==== В кросс-платформенной версии данный сервис встроен в платформу. Установка отдельного фонового приложения для обеспечения работы таймера как для версии 3.хх -- не требуется.