creatio.common

Установка bpmonline

Подготовка установочных файлов bpmonline

Файлы, необходимые для установки bpmonline, находятся в архиве. Чтобы распаковать архив, воспользуйтесь командой:

unzip -d /path/to/application/directory/ CREATIO_ARCHIVE_NAME.zip

/path/to/application/directory/ — путь к папке, в которую необходимо распаковать архив. Рекомендуем распаковывать архив с установочными файлами в пустую папку. Если вы сохранили архив в пустую папку, то можете распаковать его туда же:

unzip creatio_archive_name.zip

Creatio_archive_name.zip — название архива с установочными файлами bpmonline.

На заметку

Если при выполнении команды unzip возникает ошибка "command not found", то вам необходимо установить пакет распаковки архивов:

sudo apt-get install unzip

Развертывание сервера баз данных bpmonline с PostgreSQL на Linux

Для установки bpmonline вы можете использовать следующие конфигурации баз данных:

удаленная СУБД (рекомендуется);

локальный сервер PostgreSQL.

Если у вас уже настроен сервер PostgreSQL, то шаг II можно пропустить.

Если у вас уже есть пользователь с правами администратора для авторизации, создания и изменения баз данных, то шаг II можно пропустить.

I. Установка PostgreSQL

PostgreSQL недоступен в большинстве стандартных репозиториев. Чтобы установить PostgreSQL на Linux:

1.Войдите в систему как администратор (root):

sudo su

2.Добавьте репозиторий PostgreSQL:

echo -e "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/pgdg.list

3.Импортируйте ключ подписи к репозиторию PostgreSQL:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

4.Обновите список пакетов:

apt-get update

5.Установите PostgreSQL

apt-get install -y postgresql-12

6.Выйдите из root-сессии:

exit

На заметку

Развертывание bpmonline с отказоустойчивостью не тестировалось на PostgreSQL. Подробнее о возможности создания кластеров читайте в документации PostgreSQL.

II. Создание пользователя PostgreSQL

Установленный PostgreSQL требует дополнительной настройки, прежде чем вы перейдете к развертыванию bpmonline. После первичной установки PostgreSQL вам необходимо создать для него пользователя, который сможет подключаться к базе данных через логин и пароль и будет иметь права на создание и обновление баз данных. По умолчанию такого пользователя в PostgreSQL нет.

Рекомендуется создать следующих пользователей PostgreSQL:

Пользователь с ролью ”sysadmin” и неограниченными полномочиями на уровне сервера базы данных — нужен для восстановления базы данных и настройки доступа к ней.

Пользователь с ролью ”public” и ограниченными полномочиями — используется для настройки безопасного подключения bpmonline к базе данных через аутентификацию средствами PostgreSQL.

Если у вас в PostgreSQL уже есть администратор и пользователь с ограниченными правами на уровне сервера базы данных, то данный шаг можно пропустить.

Чтобы создать пользователя PostgreSQL:

1.Войдите как postgres:

sudo su - postgres

2.Откройте оболочку PostgreSQL:

psql.exe

3.Создайте нового пользователя с правами администратора:

CREATE USER pg_sysadmin;

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

4.Настройте для пользователя pg_sysadmin права администратора:

ALTER ROLE pg_sysadmin WITH SUPERUSER;

5.Разрешите pg_sysadmin авторизацию:

ALTER ROLE pg_sysadmin WITH LOGIN;

6.Настройте пароль для pg_sysadmin:

ALTER ROLE pg_sysadmin WITH PASSWORD 'pg_syspassword';

pg_password — пароль пользователя pg_sysadmin для подключения к серверу PostgreSQL.

7.Создайте нового пользователя с ограниченными правами:

CREATE USER pg_user;

pg_user — пользователь для подключения к серверу PostgreSQL. используется для настройки подключения bpmonline к базе данных.

8.Разрешите pg_user авторизацию:

ALTER ROLE pg_user WITH LOGIN;

9.Настройте пароль для pg_user:

ALTER ROLE pg_user WITH PASSWORD 'pg_password';

pg_password — пароль пользователя pg_user для подключения к серверу PostgreSQL.

10.Выйдите из оболочки PostgreSQL.

\q

11.Выйдите из своей сессии:

exit

III. Восстановление базы данных PostgreSQL

Для восстановления базы данных из резервной копии необходимы утилиты psql.exe и pg_restore.exe. Обе утилиты входят в компонент Command Line Tools PostgreSQL, который устанавливается вместе с PostgreSQL Server. Они находятся в каталоге установленного программного обеспечения PostgreSQL.

Если вы планируете использовать удаленную базу данных PostgreSQL и не устанавливать PostgreSQL Server, то выполните следующие шаги:

1.Скачайте бинарный пакет PostgreSQL. Найти его можно на официальном сайте продукта.

2.При установке пакета выберите также установку компонента Command Line Tools. Установка остальных компонентов опциональна.

Чтобы развернуть базу данных из резервной копии:

1.Откройте командную строку.

2.Перейдите в папку с установочными файлами PostgreSQL:

cd /D "\\path\to\PostgreSQL\folder"

\\path\to\PostgreSQL\folder — путь к папке с установочными файлами PostgreSQL.

3.Перейдите в папку с исполняемыми модулями:

cd bin

4.Установите пароль подключения к серверу БД в переменную окружения:

set PGPASSWORD=pg_syspassword

pg_syspassword — пароль пользователя  pg_sysadmin для подключения к серверу PostgreSQL.

5.Создайте базу данных, в которую будет выполнено восстановление резервной копии.

Для bpmonline версии 7.16.3 и выше:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin -–command "CREATE DATABASE pg_dbname_ceatio WITH OWNER = pg_user ENCODING = 'UTF8' CONNECTION LIMIT = -1"

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь права на создание базы данных (команда "CREATE DATABASE").

pg_user — пользователь, под логином которого будет осуществляться подключение приложения к БД. Вы можете указать любого пользователя при создании БД, а затем изменить его данные, выполнив действия, описанные в пункте 10 инструкции.

Для bpmonline версии 7.16.0 – 7.16.2:

psql.exe --host pg_server_address --port pg_server_port --username=pg_sysadmin -–command "CREATE DATABASE pg_dbname_creatio WITH OWNER = pg_user ENCODING = 'UTF8' CONNECTION LIMIT = -1"

pg_server_address — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_user — пользователь с ограниченными правами, который используется для подключения к базе данных bpmonline.

6.Если вы используете AWS RDS:

a.Скачайте скрипт ChangeTypesOwner.sql.

b.Замените в скрипте значение “postgres” на актуальное имя пользователя Postgres.

c.Выполните обновленный скрипт ChangeTypesOwner.sql.

7.Восстановите базу данных из резервной копии.

Для bpmonline версии 7.16.3 и выше:

pg_restore --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --no-owner --no-privileges --verbose \\path\to\db.backup

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь права на восстановление базы данных (команда "pg_restore").

pg_dbname_creatio — имя БД, в контексте которой происходит выполнение инструкций.

Для bpmonline версии 7.16.0 – 7.16.2:

pg_restore.exe --host pg_server_address --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --verbose \\path\to\db.backup

pg_server_address — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_dbname_creatio — имя БД PostgreSQL, в которую будут добавлены таблицы резервной копии. Используйте имя базы данных, указанное в команде "CREATE DATABASE»   на шаге 2.

8.Скачайте файл CreateTypeCastsPostgreSql.sql.

9.Выполните преобразование типов:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --file=\\путь\к\CreateTypeCastsPostgreSql.sql

pg_server_ip — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_dbname_creatio — имя БД, в контексте которой происходит выполнение инструкций.

\\путь\к\CreateTypeCastsPostgreSql.sql — путь к сохраненному ранее файлу CreateTypeCastsPostgreSql.sql.

10.В bpmonline версии 7.16.3 и выше существует возможность при восстановлении из резервной копии заменить владельца БД и ее объектов на пользователя, не являющегося системным администратором (не Superuser). Для этого вам потребуется скрипт ChangeDbObjectsOwner. Скачать файл.
Чтобы восстановить БД от имени пользователя, не являющегося администратором:

a.Замените владельца БД:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname –-command "ALTER DATABASE pg_dbname_creatio OWNER TO pg_user"

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться администратором (Superuser) или иметь права на создание базы данных (команда "CREATE DATABASE").

pg_user — новый владелец БД.

pg_dbname_creatio — имя БД, владелец которой заменяется.

b.Замените владельца объектов БД:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --file=\\путь\к\ChangeDbObjectsOwner.sql --variable owner=pg_user --variable ON_ERROR_STOP=1

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться администратором (Superuser) или иметь права на создание базы данных (команда "CREATE DATABASE").

pg_user — новый владелец БД.

pg_dbname_creatio — имя БД, владелец которой заменяется;

\\путь\к\ChangeDbObjectsOwner.sql — путь к сохраненному ранее файлу ChangeDbObjectsOwner.sql.

Вы можете пропустить этот шаг, и в таком случае владельцем БД и ее объектов останется пользователь, от имени которого запускалась команда pg_restore. Обычно это пользователь postgres.

Настройка сервера кэширования данных на Linux

Пакет установочных файлов сервера кэширования данных доступен в стандартных репозиториях Debian. Ниже описана установка на Debian и производных дистрибутивах, таких как Ubuntu и Linux Mint. Чтобы установить сервер кэширования данных:

1.Войдите в систему как администратор (root):

sudo su

2.Обновите список пакетов:

apt-get update

3.Установите сервер кэширования данных:

apt-get install redis-server

4.Настройте сервер таким образом, чтобы он запускался как системная служба systemd. Для этого:

a.Откройте redis.conf в текстовом редакторе от имени пользователя root. Например, для этого можно использовать текстовый редактор Nano:

nano /etc/redis/redis.conf

b.Найдите запись “supervised no”. Замените запись на “supervised systemd”.

c.Сохраните изменения и закройте текстовый редактор.

5.Перезагрузите сервер:

systemctl restart redis-server

6.Выйдите из root-сессии:

exit

Настройки ConnectionStrings.config

В файле ConnectionStrings.config используются следующие параметры:

db — элемент, отвечающий за соединение с базой данных. В нем настраивается путь к базе данных, с которой необходимо установить связь, и способ авторизации на сервере базы данных.

<add name="db" connectionString="Server=[Адрес сервера базы данных];Port=[Порт сервера базы данных];Database=[Имя базы данных];User ID=[Пользователь с ограниченными правами];password=[Пароль пользователя с ограниченными правами];Timeout=500; CommandTimeout=400;MaxPoolSize=1024;" />

Redis — элемент, отвечающий за взаимодействие с сервером Redis:

<add name="redis" connectionString="host=[Servername];db=[Redis DB number];port=6379;maxReadPoolSize=10;maxWritePoolSize=500" />

Установка bpmonline .NET Core непосредственно на Linux

Чтобы развернуть сервер приложения:

Установите .NET Core, GDI+ совместимый API для семейства UNIX-подобных операционных систем, библиотеки разработки и файлы заголовков для GNU C. Подробнее >>>

Запустите сервер приложения bpmonline. Подробнее >>>

Установка .NET Core и других зависимостей bpmonline

1.Скачайте пакеты microsoft-prod package:

wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

2.Войдите в систему как администратор (root):

sudo su

3.Установите загруженные пакеты:

dpkg -i packages-microsoft-prod.deb

4.Обновите список пакетов:

apt-get update

5.Установите транспорт APT для загрузки по протоколу HTTP Secure:

apt-get install apt-transport-https

6.Обновите список пакетов:

apt-get update

7.Установите .NET Core:

apt-get install dotnet-sdk-3.1

8.Установите GDI+ совместимый API для семейства UNIX-подобных операционных систем:

apt-get install -y libgdiplus

9.Установите библиотеки разработки и файлы заголовков для GNU C:

apt-get install -y libc6-dev

10.Выйдите из root-сессии:

exit

Запуск сервера приложения bpmonline

Чтобы запустить приложение:

1.Перейдите в папку с установочными файлами bpmonline:

cd /path/to/application/directory/

2.Запустите сервер .Net Core:

COMPlus_ThreadPool_ForceMinWorkerThreads=100 dotnet Terrasoft.WebHost.dll

Версия bpmonline для HTTP будет доступна через порт 5000.

Версия bpmonline для HTTPS будет доступна через порт 5002.

На заметку

Первый вход в систему после настройки приложения осуществляется под учетной записью Supervisor (логин — Supervisor; пароль — Supervisor).

Установка bpmonline .NET Core на Linux с использованием Docker

Используйте этот метод развертывания для запуска приложения bpmonline изолированно от операционной системы. Установка сервера кэширования данных, восстановление БД и настройка файла ConnectionStrings.config выполняются аналогично, по описанной выше инструкции.

Чтобы развернуть сервер приложения с использованием Docker:

Настройте доступ к серверу кэширования из контейнера Docker. Подробнее >>>

Установите Docker.

Создайте Dockerfile.

Создайте и запустите образ Docker.

Настройка сервера кэширования данных bpmonline

1.Откройте redis.conf в текстовом редакторе от имени пользователя root. Например, для этого можно использовать текстовый редактор Nano:

sudo nano /etc/redis/redis.conf

2.Найдите запись “bind 127.0.0.1 ::1”. Замените ее на запись “bind 0.0.0.0”, чтобы использовать все доступные интерфейсы IPV4.

3.Сохраните изменения и закройте текстовый редактор.

4.Перезагрузите сервер:

sudo systemctl restart redis-server

Установка Docker

Чтобы установить Docker, выполните команду:

sudo apt-get install docker

Создание Dockerfile

Для создания Dockerfile:

1.Перейдите в папку приложения:

cd /path/to/application/directory/

/path/to/application/directory/ — путь к папке, в которую распакован архив с установочными файлами bpmonline.

2.Создайте Dockerfile в текстовом редакторе Nano:

nano Dockerfile

3.Добавьте следующий код:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base
EXPOSE 5000 5002

RUN apt-get update && \
apt-get -y --no-install-recommends install \
libgdiplus \
libc6-dev && \
apt-get clean all && \
   rm -rf /var/lib/apt/lists/* /var/cache/apt/*

WORKDIR /app
COPY . ./

FROM base AS final
WORKDIR /app
ENV ASPNETCORE_ENVIRONMENT Development
ENV TZ US/Eastern
ENV COMPlus_ThreadPool_ForceMinWorkerThreads 100
ENTRYPOINT ["dotnet", "Terrasoft.WebHost.dll"]

4.Нажмите Ctrl+O, чтобы сохранить изменения.

5.Закройте редактор нажатием Ctrl+X.

Создание и запуск образа Docker

Создайте образ Docker:

docker build -f Dockerfile -t creatioimg .

Запустите созданный образ:

docker run -p http_port_number:5000 -p https_port_number:5002  -d --dns=DNS_server_ip --dns-search=DNS_address_suffix -v /logspath/mycreatio:/app/Logs --name Creatio creatioimg

http_port_number — номер порта. Docker будет предоставлять версию HTTP через этот порт.

https_port_number — номер порта. Docker будет предоставлять версию HTTPS через этот порт.

DNS_server_ip — IP-адрес сервера DNS, который позволяет серверу определять адреса интернет-доменов. Вы можете использовать несколько значений --dns для разных DNS-серверов.

DNS_address_suffix — поисковый домен DNS, который позволяет контейнеру искать не полностью определенные имена хостов. Вы можете использовать несколько значений --dns-search для разных поисковых доменов DNS.

На заметку

Добавьте --restart, чтобы по команде всегда использовался определенный контейнер.

Версия bpmonline для HTTP будет доступна через порт http_port_number.

Версия bpmonline для HTTPS будет доступна через порт https_port_number.

На заметку

Первый вход в систему после настройки приложения осуществляется под учетной записью Supervisor (логин — Supervisor; пароль — Supervisor).

 

Был ли данный материал полезен?

Как можно улучшить эту статью?