Данная статья служит инструкцией по установке сервера Docsvision на Linux (Astra Linux) и сопутствующего ПО. Статья последовательна, т.е. каждый шаг выполняется друг за другом.
Цель: выполнив все шаги, получить работоспособную систему Docsvision, работающую под управлением ОС Linux.
Описание машин, на которых происходит установка.
1) Сервер администрирования Docsvision.
Машина на Windows Server 2019, будет служить сервером администрирования, для работы инструментов:
- Консоли настройки Docsvision
- Конструктора веб разметок
- Панели управления Веб клиента
- Работа утилит из состава Resource Kit
Название: DocsvisionAdmin
IP-адрес: 192.168.1.54
Домен: green.local
2) Сервер приложений Docsvision.
Машина на Astra Linux 1.7.4 , с политикой безопасности «Орёл». Будет использоваться для установки северных компонентов Docsvision.
Название: AppServer
IP-адрес: 192.168.1.53
Домен: green.local
3) Сервер баз данных.
Машина под управлением Astra Linux 1.7.4. На данной машине установим СУБД Postgres.
Название: PostgresAstra
IP-адрес: 192.168.1.55
4) Контроллер домена.
Машина на Windows Server 2019 с поднятой ролью Active Directory и развернутым доменом green.local .
Название: AdminNode
IP-адрес: 192.168.1.52
Установка PostgreSQL и планировщика задач pgAgent.
Для создания базы данных и работы Docsvision, нам потребуется выполнить установку и настройку сервера PostgreSQL. Отмечу сразу, что заниматься тюнингом в данной статье мы не будем, так как это тема отдельной статьи.
Действия производятся на сервере баз данных.
1. Скорректируем список репозиториев Astra Linux, отредактировав sources.list, с помощь команды:
sudo nano /etc/apt/sources.list
Закомментируем репозитории «cdrom» и уберем комментарии на нужных и добавим последней строкой репозиторий astra-ce, получим файл следующего вида:
# Astra Linux repository description https://wiki.astralinux.ru/x/0oLiC
# deb cdrom:[OS Astra Linux 1.7.4 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free
# deb cdrom:[OS Astra Linux 1.7.4 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://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce
В данной статье, все изменения будут производиться редактором nano. Чтобы сохранить изменения в редакторе, необходимо воспользоваться сочетанием клавиш CTRL+O, чтобы закрыть редактор нажмите сочетание CTRL+X. Подробное описание команд вы сможете найти здесь. Все дальнейшие изменения в конфигурационных файлах будут подразумевать — открытие, изменение, сохранение и выход из редактора.
Обновим базу данных пакетов:
sudo apt update
2. Установим PostgreSQL, версии 14.
sudo apt install postgresql-14
3. Изменим пароль для роли postgres на P@ssw0rd. Для этого выполним переход на пользователя postgres, командой:
sudo -su postgres
Воспользуемся psql. Это консольная утилита с помощью которой можно подключится к серверу баз данных и начать с ним работать.
psql
Утилита предложит ввести команды, выполним последовательно:
ALTER USER postgres WITH PASSWORD 'P@ssw0rd';
exit;
Завершим работу с пользователем postgres, еще раз выполнив команду выхода:
exit;
3. Разрешим удаленный доступ к серверу PostgreSQL:
sudo nano /etc/postgresql/14/main/pg_hba.conf
Добавим в конфигурационный файл строку:
host all all 0.0.0.0/0 scram-sha-256
Отредактируем конфигурационный файл postgresql.conf
sudo nano /etc/postgresql/14/main/postgresql.conf
Пропишите\измените ряд настроек в файле, часть из них закомментировано, требуется убрать комментарий и внести изменения:
listen_addresses = '*'
timezone = 'Europe/Moscow'
lc_messages = 'ru_RU.UTF-8'
standard_conforming_strings = on
shared_buffers = 1024MB
plan_cache_mode = force_generic_plan
shared_buffers — установлено значение равное 25% от общего размера ОЗУ)
4. Перезапустим PostgreSQL:
sudo systemctl restart postgresql
Проверим статус сервиса, убедитесь, что он имеет статус Active:
sudo systemctl status postgresql
Установим планировщик pgAgent:
sudo apt install pgagent
Скопируем файлы расширения в папку с актуальной версией PostgreSQL:
sudo cp /usr/share/postgresql/11/extension/* /usr/share/postgresql/14/extension/
Выполним вход под пользователем postgres:
sudo -su postgres
Запустим psql:
psql
Выполним команду создания расширения:
CREATE EXTENSION pgagent;
По результату вы должны увидеть строку «CREATE EXTENSION».
Блок установки и настройки PostgreSQL завершен. К pgAgent мы еще вернемся в одном из разделов статьи.
Ввод сервера приложений Docsvision в домен.
По умолчанию, сервер приложений Docsvision должен состоять в домене. Чтобы не обращаться лишний раз к документации Astra Linux, опишем здесь процесс ввода машины в домен. Если ваш сервер приложений уже введен в домен, то данный раздел можно пропустить.
Выполняем действия на сервере приложений Docsvision (AppServer.green.local).
Установим пакет resolveconf, выполнив команду:
sudo apt install resolvconf
Отредактируем список DNS серверов. Для начала откроем файл head:
sudo nano /etc/resolvconf/resolv.conf.d/head
Укажем строку с адресом нашего контроллера домена \ dns сервера:
nameserver 192.168.1.52
Выполним перезапуск системы:
sudo reboot
После перезапуска выполним ввод машины в домен:
sudo astra-ad-sssd-client -d green.local -u dvadmin
Подготовка сервера приложений Docsvision.
Выполняем действия на сервере приложений Docsvision (AppServer.green.local).
1. Скорректируем список репозиториев Astra Linux, отредактировав sources.list, как это ранее делали на сервере баз данных, с помощь команды:
sudo nano /etc/apt/sources.list
Закомментируем репозитории «cdrom» и уберем комментарии на нужных и добавим последней строкой репозиторий astra-ce, получим файл следующего вида:
# Astra Linux repository description https://wiki.astralinux.ru/x/0oLiC
# deb cdrom:[OS Astra Linux 1.7.4 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free
# deb cdrom:[OS Astra Linux 1.7.4 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://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 astra-ce
Обновим базу данных пакетов, выполним команду:
sudo apt update
Установим следующие пакеты командой:
sudo apt install ca-certificates curl gnupg lsb-release
Подключим официальный репозиторий Docsvision, последовательно выполнив команды:
sudo curl -fsSL https://packages.docsvision.com/astra/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docsvision.gpg
sudo echo "deb https://packages.docsvision.com/astra $(. /etc/os-release && echo $VERSION_CODENAME) 6.1" | sudo tee /etc/apt/sources.list.d/docsvision.list > /dev/null
sudo apt update
Выполним установку пакета, с подключением репозитория, для дальнейшего подключения репозитория Microsoft, выполнив последовательно команды :
sudo wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null
sudo wget https://packages.microsoft.com/config/debian/10/prod.list -O /etc/apt/sources.list.d/microsoft-prod.list
sudo apt update
sudo apt install packages-microsoft-prod
Поднимем приоритет пакетов из репозитория Microsoft, для этого создадим файл /etc/apt/preferences.d/microsoft.pref и добавим в него следующие строки:
sudo nano /etc/apt/preferences.d/microsoft.pref
Пропишем содержимое следующего вида:
Package: dotnet* aspnet* netstandard*
Pin: origin packages.microsoft.com
Pin-Priority: 910
Обновим базу данных пакетов:
sudo apt update
Установка и настройка модуля Платформа.
Выполняем действия на сервере приложений Docsvision (AppServer.green.local).
1. Установка модуля «Платформа».
Выполним установку модуля «Платформа»:
sudo apt-get install docsvision-platform
Вместе с модулем Платформа команда установит модули Базовые объекты и Конструктор согласований.
Выполним установку утилиты активации лицензии:
sudo apt-get install docsvision-activation
Выполним активацию сервера Docsvision, последовательно выполнив команды, указав серийный номер. В нашем случае используем активацию онлайн.
cd /usr/lib/docsvision/tools/activation
sudo ./activation online XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
2. Настройка модуля «Платформа».
Откройте конфигурационный файл модуля:
nano /usr/lib/docsvision/platform/appsettings.json
Данный файл представляет из себя json, с различным набором ключей, отвечающими за настройки различного типа. Рассмотрим блок настроек самого сервера, укажем здесь те настройки, что подлежат изменению.
"Platform": {
"Server": {
"DefaultBaseName": "dvlinux",
"WindowsSecurityServerName": " DocsvisionAdmin.green.local",
"Databases": {
"dvlinux": "Server=192.168.1.55;port=5432;database=dvlinux;Username=postgres;Password=P@ssw0rd"
}
}
DefaultBaseName — псевдоним базы данных. Должен совпадать с псевдонимом подключаемой базы в Консоли настройки. Можно заполнить заранее, или вернуться позже, после создания из Консоли управления.
WindowsSecurityServerName — необходимо указать имя любого компьютера в текущем домене Active Directory. Используется при получении списка доступных членов домена при настройке дискреционной безопасности в Windows-клиенте, РМА и DVExplorer.
Databases (dvlinux — псевдоним используемой БД, для которой задаётся строка подключения). Для формирования строки подключения, можно воспользоваться специальной формой.
Следующий блок настроек касается сервиса настроек:
"SettingsService": {
"ConnectionString": "ConnectAddress=http://127.0.0.1:5200/api",
"ApiKey": "apikey-settingsservice"
}
ConnectionString — полный адрес Сервиса настроек. Так как сервис настроек у нас будет находиться на этой же машине, то укажем http://127.0.0.1:5200/api .
ApiKey — API-ключ для подключения к Сервису настроек, можно оставить значение по умолчанию или изменить, главное условие, чтобы значения в конфигурации модулей Сервис настроек и Платформа были одинаковые. Адрес и API-ключ требуется указать, если планируется переходить в Консоль управления Docsvision из карточек Web-клиента и Windows-клиента.
Укажем настройки по группам безопасности сервера Docsvision:
"Groups": {
"DocsVision Administrators": [
"green\\dvadmin"
],
"DocsVision Security Administrators": [
"green\\dvadmin"
]
},
Выполним настройки домена и LDAP:
"Ldap": {
"AuthType": "Basic",
"Credential": {
"UserName": "[email protected]",
"Password": "P@ssw0rd"
}
},
"Domains": [
"GREEN.LOCAL"
],
Ldap — имя и пароль учётной записи, под которой процесс обращается к ActiveDirectory.
AuthType — тип аутентификации: Basic — аутентификация через LDAP, Oauth — аутентификация через ЕСИА или Azure.
UserName — логин пользователя модуля для аутентификации LDAP.
Password — пароль учётной записи пользователя для аутентификации LDAP в открытом или в зашифрованном виде. В текущем примере рассмотрим открытый вид. Возможности шифрования паролей рассмотрим в отдельной статье.
Domains — домен сервера Docsvision, заглавными буквами.
Укажем настройки системных учетных записей:
"SystemUserAccount": "[email protected]",
"SystemUserPassword": "P@ssw0rd",
SystemUserAccount — имя системной учётной записи Docsvision.
SystemUserPassword — пароль системной УЗ .
Запустим службу модуля «Платформа».
sudo systemctl start dvappserver
Проверим состояние службы:
sudo systemctl status dvappserver
Если статус будет отличаться от active (running), то проверьте файл конфигурации json на корректность заполнения данными и валидность (очень легко забыть запятую), валидность можно проверить с помощью онлайн сервиса https://jsonformatter.org или аналогичные.
Базовые настройки на этом завершены. Чтобы была цельная картина полученного JSON, в статье будем прикреплять файл, после настройки каждого модуля.
Полученный файл JSON:
Установка и настройка базовых модулей Docsvision.
Выполняем действия на сервере приложений Docsvision (AppServer.green.local).
1. Установка и настройка файлового сервиса.
Выполним установку модуля:
sudo apt-get install docsvision-fileservice
Выполним редактирование конфигурационного файла:
nano /usr/lib/docsvision/fileservice/appsettings.json
Укажем строку подключения, аналогично той, что мы указывали в файле конфигурации модуля «Платформа».
"DocsVision": {
"Platform": {
"Server": {
"Databases": {
"dvlinux": "Server=192.168.1.55;port=5432;database=dvlinux;Username=postgres;Password=P@ssw0rd"
}
}
}
Полученный файл JSON:
2. Установка сервиса полнотекстового индексирования
Выполним установку модуля, с помощью команды:
sudo apt-get install docsvision-fulltextservice
Выполним редактирование конфигурационного файла:
sudo nano /usr/lib/docsvision/fulltextservice/appsettings.json
Необходимо указать строку подключения к индексируемой БД и данные системной учетной запись.
{
"DocsVision": {
"Platform": {
"Server": {
"Databases": {
"dvlinux": "host=192.168.1.55;port=5432;database=dvlinux;Username=postgres;Password=P@ssw0rd"
}
}
}
},
"SystemUserAccount": "[email protected]",
"SystemUserPassword": "P@ssw0rd"
}
Полученный файл JSON:
3. Установка Web-клиента
Выполним установку модуля Веб клиент.
sudo apt-get install docsvision-webclient
Выполним редактирование конфигурационного файла:
sudo nano /usr/lib/docsvision/webclient/appsettings.json
Укажем данные системной учетной записи:
"SystemUserAccount": "[email protected]",
"SystemUserPassword": "P@ssw0rd"
Укажем настройки LDAP и раздел с доменом:
"Ldap": {
"AuthType": "Basic",
"Credential": {
"UserName": "[email protected]",
"Password": "P@ssw0rd"
}
"Authentication": {
"DefaultDomain": "GREEN.LOCAL"
},
DefaultDomain — домен по умолчанию в формате FQDN.
Полученный файл JSON:
4. Установка и настройка Сервиса настроек.
Выполним установку:
sudo apt-get install docsvision-settingsservice
Выполним редактирование конфигурационного файла:
sudo nano /usr/lib/docsvision/settingsservice/appsettings.json
Выполним настройки:
"StorageOptions": {
"Providers": [
{
"Alias": "SqlStorage",
"Default": true,
"StorageType": "PgSql",
"StorageOptions": "host=192.168.1.55;port=5432;database=SettingsDB;Username=postgres;Password=P@ssw0rd",
"ProviderType": "Hierarchy"
}
]
},
StorageType — необходимо указать тип СУБД: MsSql – Microsoft SQL Server, PgSql – PostgreSQL.
StorageOptions — необходимо указать строку подключения к базе данных, в которой будут храниться настройки сервиса настроек. Не стоит ее путать с базой данных Docsvision, это разные базы данных, поэтому задайте этой базе данных уникальное название. Для формирования строки подключения, можно воспользоваться специальной формой. Предварительно базу данных создавать не нужно, она будет создана автоматически в момент запуска сервиса, если после запуска она создана не была, то проверьте корректность файла конфигурации, строки подключения, доступности SQL сервера и прав пользователя на создание базы, указанного в строке подключения.
Полученный файл JSON:
5. Установка Сервиса внешнего API Консоли управления Docsvision
Выполним установку:
sudo apt-get install docsvision-externalapi
Настроек в файле конфигурации модуля должно быть достаточно и редактировать их не потребуется, при размещении модуля на одном сервере с модулем сервиса настроек.
6. Установка консоли управления Docsvision
Выполним установку:
sudo apt-get install docsvision-managementconsole
Выполним редактирование конфигурационного файла:
sudo nano /usr/lib/docsvision/managementconsole/appsettings.json
В данном блоке необходимо указать через запятую тех пользователей, которым будет разрешен вход в панель управления. Мы пока укажем нашего единственного пользователя.
"Groups": {
"Docsvision Management Console Administrators": [
"[email protected]"
]
}
Полученный файл JSON:
7. Установка службы фоновых операций (Worker Service)
Выполним установку:
sudo apt-get install docsvision-workerservice
По умолчанию редактировать файл конфигурации не нужно.
Файл JSON:
8. Установка СУБП (Workflow)
Выполним установку модуля:
sudo apt-get install docsvision-workflow
Выполним редактирование конфигурационного файла:
sudo nano /usr/lib/docsvision/workflow/appsettings.json
Укажите название базы данных, бизнес процессы в которой требуется обрабатывать, в нашем случае это база будет называться dvlinux.
"BaseName": "dvlinux"
Если потребуется, чтобы бизнес-процессы могли рассылать почту с помощью почтового шлюза, то укажите отдельно почтовые настройки. Если такой необходимости не будет, то пропустите данный пункт.
Укажите данные системной учетной записи Docsvision:
"SystemUserAccount": "[email protected]",
"SystemUserPassword": "P@ssw0rd"
Полученный файл JSON:
9. Перезапуск платформы и остановка базовых модулей:
Выполним перезапуск модуля «Платформа»:
sudo systemctl restart dvappserver
Остановим сервисы базовых модулей Docsvision перед следующим этапом настройки сервера администрирования и созданием базы данных.
sudo systemctl stop dvwebclient dvsettings dvexternalapi dvconsole dvworkerservice dvworkflow dvfileservice dvfulltextservice
Подготовка сервера администрирования на Windows.
Выполняем действия на сервере администрирования Docsvision (DocsvisionAdmin.green.local).
1. Скачаем и установим следующие компоненты:
- ASP.NET Core Runtime (Hosting Bundle) версии 6.0.3
- NET Desktop Runtime x86 версии 6.0.3
- NET Desktop Runtime x64 версии 6.0.3
- Microsoft Visual C++ Redistributable х86
- Microsoft Visual C++ Redistributable х64
- .NET Framework 3.5 (Windows / Windows Server)
2. Установка серверных и клиентских дистрибутивов Docsvision.
Скачиваем установочные пакеты для Linux из центра загрузок Docsvision, обращаем внимание, что если модуль есть в разделе «Накопительные обновления», то забираем его оттуда, так как в нем содержатся все изменения\исправления, выпущенные на текущий момент.
Итого, мы должны получили следующие серверные дистрибутивы (располагаются в папке server). Выполним установку каждого дистрибутива модуля .msi , в указанной последовательности:
- Платформа.
- Служба фоновых операций.
- Конструктор согласований.
- Базовые объекты.
- Управление документами.
- Делопроизводство 4.5.
- Windows-клиент.
- Управление процессами.
- Web-клиент. (сначала Docsvision web-client server extension, потом Docsvision web-client)
Аналогично выполним установку клиентских компонентов, в следующей последовательности:
- Платформа.
- Служба фоновых операций.
- Конструктор согласований.
- Базовые объекты.
- Управление документами.
- Windows-клиент. (в ходе установки будет предложено ввести адрес севрера, в нашем случае: http://AppServer.green.local:5000)
- Делопроизводство 4.5.
- Управление процессами.
3. Выполним изменения в реестре Windows.
В реестре машины укажим фактический адрес Linux-сервера, на котором установлен сервер Docsvision. Откроем командную строку Windows с правами администратора и выполним команду с указанием адреса сервера Docsvision:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\Site /v ServerURL /t REG_SZ /d http://AppServer.green.local:5000/api/v1
4. Добавим переменные окружения.
Добавим данные системной учётной записи Docsvision в переменные окружения.
Под указанной учётной записью, консоль настройки Docsvision, конструктор Web-разметок и ‘панель управления Web-клиентом’ будут подключаться к серверу Docsvision. Аналогично запустим командную строку Windows с правами администратора и выполним последовательно команды с указанием данных учетной записи:
setx DV_SystemUserAccount [email protected]
setx DV_SystemUserPassword P@ssw0rd
5. Укажите адрес подключения ‘Панели управления Web-клиентом’ к серверу Docsvision в файлах конфигурации.
Для этого откроем файл C:\Program Files (x86)\Docsvision\WebClient\WebClientAdminConsole.appsettings.json в текстовом редакторе с правами администратора (рекомендую Notepad++, он сам предложит переключиться в режим администратора).
В разделе «Server» укажем ConnectionAddress и BaseName.
"Server": {
"SessionManagerConnection": {
"ConnectionAddress": "http://AppServer.green.local:5000",
"BaseName": "dvlinux"
}
}
ConnectionAddress — Адрес сервера Docsvision.
BaseName — название БД, от имени которой будет запускаться программа ‘Панель управления Web-клиентом’.
6. Укажем адрес подключения «Панели управления Web-клиентом» к серверу Docsvision в файлах конфигурации.
Откройте файл C:\Program Files (x86)\Docsvision\WebClient\WebLayoutsDesigner.appsettings.json в текстовом редакторе с правами администратора.
В разделе «Server» укажите ConnectionAddress и BaseName, по аналогии, как это сделали ранее для файла конфигурации панели управления Web-клиентом.
"Server": {
"SessionManagerConnection": {
"ConnectionAddress": "http://AppServer.green.local:5000",
"BaseName": "dvlinux"
}
}
Создание и дополнительные действия над базой данных Docsvision.
Выполняем действия на сервере администрирования Docsvision (DocsvisionAdmin.green.local).
1. Создание базы данных Docsvision.
Откроем консоль настройки под пользователем от имени администратора. Перейдем в раздел «Базы данных», нажмем кнопку «Мастер баз данных».
Выберем пункт «Создать новую базу данных и подключить ее к серверу».
Введем данные подключения к SQL серверу, если подключение прошло успешно, то будет предложено указать имя базы данных, в нашем случае это та самая база dvlinux, которую мы указывали в конфигурационных файлах. Проходим дальнейшие шаги, без изменений, по кнопке «Далее».
После того, как база данных будет создана, консоль настройки предложит загрузить библиотеки и настроек карточек дополнительных модулей.
Выберем все модули, но перед тем, как продолжить (выполнить нажатие кнопку «Завершить»), обязательно выполним перезапуск сервера Docsvision.
Переключимся на сервер приложений Docsvision — AppServer.green.local и выполним последовательно команды :
sudo systemctl restart dvappserver
sudo systemctl start dvwebclient dvsettings dvexternalapi dvconsole dvworkerservice dvworkflow dvfileservice dvfulltextservice
Вернемся на сервер администрирования Docsvision (DocsvisionAdmin.green.local), нажмем кнопку «Завершить» и дождемся завершение установки.
2. Добавим системного пользователя в справочник сотрудников.
Откроем Windows клиент и добавим системного сотрудника в справочник сотрудников, создав предварительно организацию.
3. Импортируем стандартные решения ВК.
Откроем консоль настройки ВК, перейдем на вкладку «Решения» и нажмем кнопку «Импортировать стандартные решения», дождемся загрузки данных.
Дополнительно в последних версиях замечено, что ВК не открывается и конструктор разметок ВК запускается с ошибкой «Не найдена локализация». Чтобы этого избежать, откроем вкладку «Языки» в консоли настройки ВК, выберем базу данных, дождемся загрузки локализаций.
4. Перезапустим сервис Веб клиента.
Переключимся на сервер приложений Docsvision — AppServer.green.local и выполним команду :
systemctl restart dvwebclient
5. Откроем веб клиент в браузере.
Пробуем открыть веб клиент, в нашем случае по ссылке, он должен быть доступен и открыт: http://appserver.green.local:5004/ .
Дополнительные шаги:
Установка и настройка Р7-Офис для работы предпросмотра.
Выполняем действия на сервере баз данных (PostgresAstra.green.local).
Создадим базу данных, пользователя и назначим права для Р7-Офис, для этого выполним последовательно команды:
sudo -i -u postgres psql -c "CREATE USER r7office WITH password 'r7office';"
sudo -i -u postgres psql -c "CREATE DATABASE r7office OWNER r7office;"
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE r7office TO r7office;"
Далее переключаемся на сервер приложений Docsvision (AppServer.green.local) и выполняем дальнейшие действия там.
Подключим репозиторий Р7-Офис, выполним последовательно команды:
sudo echo "deb https://download.r7-office.ru/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/r7-office.list
sudo curl -s https://download.r7-office.ru/repo/gpgkey/r7-office.gpg.key | sudo apt-key add -
Обновим базу данных пакетов:
sudo apt update
Установим пакет RabbitMQ:
sudo apt-get install rabbitmq-server
Установим Nginx:
sudo apt-get install nginx-extras
Установим Radis:
sudo apt-get install redis-server
Заранее укажем ответы на вопросы debconf, касакмые подключения к серверу баз данных, выполним последовательно команды, но обратите внимание, что адрес подключения я указываю свой 192.168.1.55, вам же необходимо его будет изменить, остальное без изменений, с учетом созданной ранее базы данных и пользователя на SQL сервере.
sudo echo r7-office-documentserver-ee ds/db-host string 192.168.1.55 | sudo debconf-set-selections
sudo echo r7-office-documentserver-ee ds/db-pwd select r7office | sudo debconf-set-selections
sudo echo r7-office-documentserver-ee ds/db-user select r7office | sudo debconf-set-selections
sudo echo r7-office-documentserver-ee ds/db-name select r7office | sudo debconf-set-selections
Выполним установку пакетов, требуемых для дальнейшей установки шрифтов:
sudo apt install cabextract libmspack0 libpcre2-8-0 wget xfonts-encodings xfonts-utils
В репозитории Astra отсутствует пакет ttf-mscorefonts-installer_3.8.1_all.deb.
Поэтому перенесите его в папку вашего пользователя на сервере Linux и установите вручную. Я лично делаю это с помощью SFTP, через приложение. FileZilla. Вы можете сделать это любым другим удобным инструментом. Если на этом этапе у вас возникнут проблемы, задайте вопрос в комментариях, я вам помогу. Установку пакета выполним следующей командой:
sudo dpkg -i ttf-mscorefonts-installer_3.8.1_all.deb
Дождемся завершения установки шрифтов и выполним установку пакета Р7-Офис.Сервер документов:
sudo apt-get install r7-office-documentserver-ee
Совместно с лицензией Docsvision вы должны были получить файл лицензии Р7-Офис.Сервер документов, если файла лицензии нет, то Р7-Офис будет работать 3 месяца в пробном режиме.
Необходимо поместить файл лицензии (<имя файла лицензии>.lic) в папке /var/www/r7-office/Data/ командой:
cp <имя файла лицензии>.lic /var/www/r7-office/Data/license.lic
Имя файла лицензии должно быть строго license.lic. Назначьте права на файл license.lic:
chmod 644 /var/www/r7-office/Data/license.lic
Создайте файл конфигурации для Р7-Офис «ds-docsvision.conf» командой:
touch /etc/nginx/includes/ds-docsvision.conf
Выполните команду, чтобы новый конфигурационный файл прочитался:
systemctl reload nginx
Откройте конфигурационный файл:
sudo nano /etc/nginx/includes/ds-docsvision.conf
Добавьте в конфигурационный файл, следующие строки:
location ~* ^(\/upload.*)(\/.*) {
alias /tmp$1$2;
add_header Content-Disposition "attachment; filename*=UTF-8''$arg_filename";
}
Откройте файл /etc/r7-office/documentserver/local.json:
sudo nano /etc/r7-office/documentserver/local.json
Задайте для параметров inbox, outbox и browser значение false. Затем перезапустите службу сервера документов:
sudo systemctl restart ds-docservice.service
Так как Р7-Офис и Web-клиент находятся на одной машине и для связи между собой используют один частный IP адрес, для корректного отображения предварительного просмотра необходимо изменить значение параметров в файле /etc/r7-office/documentserver/default.json:
sudo nano /etc/r7-office/documentserver/default.json
Найдите ключ «request-filtering-agent» и внесите изменения (по умолчанию значение параметров – false, измените их на true):
"request-filtering-agent" : {
"allowPrivateIPAddress": true,
"allowMetaIPAddress": true
},
После изменения параметров необходимо перезапустить службы командами:
sudo apt install supervisor
sudo systemctl restart ds-converter
sudo service nginx restart && sudo supervisorctl restart all
Откройте файл конфигурации веб клиента и добавьте следующие параметры: «ServerR7ConnectionAddress», «ServerR7UploadDirectory», «FilePreviewMode». Для этого откроем файл конфигурации веб клиента:
sudo nano /usr/lib/docsvision/webclient/appsettings.json
Добавим параметры в раздел «Docsvision»-«WebClient»-«SettingGroups»-«WebClient» со следующими значениями:
"Docsvision": {
"WebClient": {
"SettingGroups": {
"WebClient": {
"ServerR7ConnectionAddress": "http://AppServer.green.local",
"ServerR7UploadDirectory": "/tmp/upload",
"FilePreviewMode": "2"
}
}
}
}
ServerR7ConnectionAddress — URL сервера документов Р7-Офис/OnlyOffice. Настройка обязательна для заполнения. Если URL сервера документов Р7 не указан, остальные настройки будет проигнорированы, и будет использоваться стандартный инструмент предварительного просмотра PDF.js. Адрес необходимо указать в формате FQDN.
ServerR7UploadDirectory — каталог загрузки консолидируемых файлов.
FilePreviewMode — определяет, какой компонент используется для предпросмотра. Значения: 0 — предпросмотр отключен, 2 — предпросмотр с помощью Р7.
Полученный файл JSON:
Выполните перезапуск сервиса веб клиента.
sudo systemctl restart dvwebclient
Установка Криптосервиса.
Выполняем действия на сервере приложений Docsvision (AppServer.green.local).
1. Установка и настройка криптосервиса ЭП
Для использования криптосервиса ЭП требуется Docker. Установим его:
sudo apt install docker.io
Запустим контейнер, загрузив образ криптосервиса:
sudo docker run -d -p 8100:8094 packages.docsvision.com/cryptoservice
Контейнер поставляется в комплекте со следующими сертификатами:
- Защищённые сертификаты Минцифры.
- Сертификаты УЦ «Контур».
- Сертификаты «Крипто-Про УЦ 2.0» (TLS CA).
- Сертификаты УЦ ООО «Крипто-Про».
Необязательно: для проверки давайте добавим сертификат тестового УЦ КриптоПро. Создадим папку Cert:
mkdir Cert
Далее в данную папку загрузим сертификат тестового УЦ КриптоПро. (по аналогии с файлом шрифтов, например, через FileZilla).
Посмотрим список запущенных контейнеров:
sudo docker ps
Из вывода необходимо скопировать CONTAINER ID для контейнера криптосервиса. В моем случае это 5243393e3ca1 и выполним остановку контейнера:
sudo docker stop 5243393e3ca1
Теперь необходимо смонтировать папку Cert (где лежит наш сертификат(ы)) в каталог /var/cryptoservice/cacerts Docker-контейнера и запустить контейнер. При запуске контейнера всё содержимое папки будет импортировано в хранилище. Сделать это можно командой:
sudo docker run -d -p 8100:8094 -v ./Cert:/var/cryptoservice/cacerts packages.docsvision.com/cryptoservice
Установка криптосервиса завершена, теперь создайте файл с расширением .json и любым именем по пути /usr/lib/docsvision/platform/config :
sudo nano /usr/lib/docsvision/platform/config/Crypto.json
Добавьте в него содержимое, указав адрес расположения криптосервиса :
{
"DocsVision": {
"BackOffice": {
"Server": {
"Extension": {
"ComplexSignatureServiceAddress": "ConnectAddress=http://AppServer.green.local:8100/cryptoservice/api/v1"
}
}
}
}
}
2. Выполним настройки в консоли настройки.
Откроем консоль управления по ссылке: http://appserver.green.local:5100/
Пройдем авторизацию и перейдем в настройки – соединения. Добавим новое соединение по кнопке «Создать экземпляр», если оно не было создано ранее:
Имя соединения: произвольное (я укажу DVLINUX)
Адрес сервера: http://appserver.green.local:5000 (вам необходимо указать свой)
База данных: dvlinux (вам необходимо указать свою)
Логин: укажите системную учетную запись (в моем случае green\dvadmin)
Пароль: пароль от системной учетной записи (в моем случае P@ssw0rd)
Пройдем на вкладку «Служба фоновых процессов» и нажмем кнопку «Подключить процесс», введем произвольное имя процесса (я укажу Worker DVAdmin Backoffice) и выберем тип конфигурации «Базовые объекты», нажмем «сохранить» и укажем ранее созданное соединение – DVLINUX. Можете настроить еще и почтовое соединение, указав его в настройках процесса, но почтовые уведомления это тем отдельной статьи.
Аналогично создайте новый процесс с типом «Обслуживание ЭП» и укажите соединение. Я назвал свой сервис Worker DVAdmin Crypto:
Создание и запуск службы для pgAgent.
Ранее в статье мы выполняли установку pgAgent и создали расширение, однако этого недостаточно для работы планировщика. Дополнительно необходимо выполнить запуск pgAgent.
Создадим нового пользователя useragent. Для этого перейдем под пользователем postgres
sudo -su postgres
Откроем psql:
psql
Выполним последовательно команды на создание пользователя useragent с паролем P@ssw0rd и присвоим ему полные права:
CREATE USER useragent WITH PASSWORD 'P@ssw0rd';
ALTER ROLE useragent SUPERUSER CREATEDB CREATEROLE REPLICATION BYPASSRLS;
Выполните выход из psql:
exit;
и выполните выход из пользователя postgres, также c помощью команды:
exit;
Создайте файл .pgpass в /var/lib/postgresql/ с помощью команды:
sudo nano /var/lib/postgresql/.pgpass
В файле пропишите строку подключения пользователя, от которого будет запускаться pgagent.
Формат строки: имя или ip-адрес хоста:порт:*:имя пользователя:пароль
Пример строки:
127.0.0.1:5432:*:useragent:P@ssw0rd
Назначаем пользователя postrgres владельцем файла /var/lib/postgresql/.pgpass командой:
sudo chown postgres:postgres /var/lib/postgresql/.pgpass
Присвоим права 600 на файл .pgpass, т.к. если разрешения будут менее строгими, этот файл не будет прочитан.
sudo chmod 600 /var/lib/postgresql/.pgpass
В частности файл .pgpass нужен, чтобы конфиг файл юнита службы pgagent не содержал в себе пароль в открытом виде (в целях безопасности).
Создаем файл конфигурации pgAgent:
nano /etc/pgagent.conf
Укажем в нем содержимое, где:
DBNAME — имя системной базы данных.
DBUSER — пользователь под которым будет происходить подключение pgagent.
DBHOST — адрес сервера баз данных, в данном случае 127.0.0.1, так как pgAgent располагается на одной машине с PostgreSQL.
DBPORT — порт PostgreSQL.
LOGFILE — файл лога.
#/etc/pgagent.conf
DBNAME=postgres
DBUSER=useragent
DBHOST=127.0.0.1
DBPORT=5432
# ERROR=0, WARNING=1, DEBUG=2
LOGLEVEL=1
LOGFILE="/var/log/pgagent/pgagent.log"
Создаем сервис pgagent путем создания файла pgagent.service:
sudo nano /lib/systemd/system/pgagent.service
Внесем настройки в файл:
[Unit]
Description=PgAgent for PostgreSQL
After=syslog.target
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
# Location of the configuration file
EnvironmentFile=/etc/pgagent.conf
# Where to send early-startup messages from the server (before the logging
# options of pgagent.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog
# Disable OOM kill on the postmaster
OOMScoreAdjust=-1000
ExecStart=/usr/bin/pgagent -s ${LOGFILE} -l ${LOGLEVEL} host=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT}
KillMode=mixed
KillSignal=SIGINT
Restart=on-failure
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
[Install]
WantedBy=multi-user.target
Создадим папку для логов pagent и настроим ей права:
sudo mkdir /var/log/pgagent
sudo chown postgres:postgres /var/log/pgagent/
sudo chmod g+w /var/log/pgagent
Выполняем последовательно команды:
sudo systemctl daemon-reload
sudo systemctl enable pgagent
sudo systemctl start pgagent
pgAgent запущен и теперь управляется инструментом для управления службами в Linux — systemctl.
Работу pgagent можно проверить следующим способом: создайте в системе карточку, удалите ее, карточка будет перемещена в корзину. Теперь выполните вручную джоб dvjob_имя_бд_purge_deleted_cards . Если после этого корзина будет очищена, то можем считать, что pgagent работает штатно.
Полезное.
Название модуля | Название сервиса | Файл конфигурации |
Платформа | dvappserver | /usr/lib/docsvision/platform/appsettings.json |
Web-клиент | dvwebclient | /usr/lib/docsvision/webclient/appsettings.json |
Сервис настроек | dvsettings | /usr/lib/docsvision/settingsservice/appsettings.json |
Сервис внешнего API Консоли управления Docsvision | dvexternalapi | /usr/lib/docsvision/externalapi/appsettings.json |
Консоль управления Docsvision | dvconsole | /usr/lib/docsvision/managementconsole/appsettings.json |
Служба фоновых операций | dvworkerservice | /usr/lib/docsvision/workerservice/Configuration.json |
СУБП (Workflow) | dvworkflow | /usr/lib/docsvision/workflow/appsettings.json |
Файловый сервиса | dvfileservice | /usr/lib/docsvision/fileservice/appsettings.json |
Cервис полнотекстового индексирования | dvfulltextservice | /usr/lib/docsvision/fulltextservice/appsettings.json |
Добавить комментарий