====== Установка и настройка системы под 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.хх -- не требуется.