Запуск СЭД Docsvision на ОС Astra Linux
-
- 17 апреля 2024
- Статьи
Актуальный релиз платформы Docsvision Linux Edition, доступный в ECM-редакции с 1 января 2023 года, позволяет развернуть систему на ОС Astra Linux, а также на СУБД PostgreSQL. Таким образом, платформа Docsvision поддержала работу на отечественном стеке ИТ и ответила на актуальный запрос бизнес-сообщества. В этой статье мы рассмотрим практические кейсы перевода СЭД на ОС Linux.
Бенчмаркинг ИТ-рынка в России
С 2022 года, когда приоритет импортозамещения в корпорациях и государственных органах приобрёл первостепенное значение, организации массово закупали «железо»: сервера, системы хранения данных. Экстренные и значительные инвестиции в инфраструктуру забрали бюджет на ПО и развитие систем, по мнению экспертов. После того, как организации завершили проекты по построению инфраструктуры с новыми требованиями и условиями рынка, ожидается старт отложенных проектов по развитию корпоративных систем, переход на импортонезависимые бизнес-приложения.
«Диджитал Дизайн», ТОП-5 поставщиков на рынке СЭД и BPM в России, делится статистикой перевода клиентов на импортонезависимый стек, включая работу на ОС Astra Linux, СУБД PostgreSQL, Postgres Pro.
В 2022 году только 30% клиентов «Дидижитал Дизайн» полностью завершили проекты импоротозамещения в части СЭД. В 2023 году скорость миграции возросла – почти 60%, изначально Microsoft-ориентированных, внедрений «переобулись». Стоит ожидать, что в ближайшие 2 года, государственные органы почти полностью мигрируют решения на Microsoft-незасивимый стек технологий. Согласно новым рекомендациям Минцифры (январь 2024 года), госкорпорации и компании с государственным участием с 1 января 2025 года должны будут использовать российские операционные системы (ОС), офисные пакеты, антивирусы.
Опыт миграции на ОС Linux
Как правило перевод системы на ОС Linux совмещен и с миграцией БД с MS SQL на PostgreSQL. Эти этапы желательно выполнять последовательно. В начале, еще на Docsvision 5.5.5 выполнить конвертацию БД при помощи утилиты миграции на PostgreSQL. Подключить и протестировать работу БД PostgreSQL на Docsvision 5.5.5. И уже затем проектная команда должна развернуть второй контур на Linux и в оговоренное время «переключить» систему на ОС Linux.
Пошаговая инструкция по миграции от Docsvision
- Подготовить 2 машины: одну на Linux, вторую на Windows
Для запуска Docsvision на ОС Astra Linux потребуется одна машина сервера Linux, которая будет выполнять роль сервера приложений, web-клиент, и всех остальных модулей docsvision. И вторая машина с Windows-сервером, необходимая для администрирования системы, работы консоли настройки, консоли web-клиента. - Установить и сконфигурировать Р7-офис на сервере web-клиента для возможности предпросмотра и объединения версий.
- Установить и сконфигурировать Linux компоненты Docsvision.
- Установить и сконфигурировать Windows компоненты Docsvision.
- Подключить и обновить БД Docsvision через консоль настройки.
Рассмотрим подробнее последовательность шагов.
Подготовка места администратора на Windows
Для работы сервера приложений обязательно требуются его взаимодействие с Active Directory, либо с другими контроллерами домена поддерживающими совместимость с Active Directory, например Samba DC. Мы на Windows-машине развернули контроллер домена (Active Directory). Этого можно не делать, если есть свой домен.
Дополнительно на Windows-машине, с которой мы будем запускать консоль настройки Docsvision, устанавливаем дополнительные компоненты:
- Установить контроллер домена AD DS (опционально)
- Установить ASP.NET Core Runtime (Hosting Bundle) версии 6.0.3 и выше
- Установить .NET Desktop Runtime (x86 и x64) версии 6.0.3 и выше
- Сгенерировать keytab-файл на контроллере домена, например при помощи консольной утилиты ktpass
Пример команды:
ktpass -princ HTTP/server.example.com@EXAMPLE.COM -mapuser administrator@example.com -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass Password -out C:\\\krb5.keytab
Обратите внимание что .NET Desktop Runtime нужно установить в двух версиях 64-битный и 32-битный, потому что клиентские компоненты работают в 32-битном режиме. Дополнительно на контроллере домена создаём при помощи специальной утилиты keytab файл, который потребуется для работы Kerberos аутентификации.
Подготовка сервера на Linux
- Astra Linux Special Edition 1.7 и выше
Требования к версии обусловлены особенностями установки сторонних компонентов, в частности, R7 Office. - Добавление keytab файла в каталог /etc/
- Установить дополнительные компоненты для корректной установки пакетов Docsvision sudo apt-get install ca-certificates curl gnupg lsb-release
- Ввести машину в домен, например при помощи инструментов astra-winbind, или astra-ad-sssd-client
Пример команды:
sudo astra-ad-sssd-client -d example.com -u Администратор
где:
-d example.com - указание имени домена;
-u Администратор - указание имени администратора домена;
Установка Р7-офис. Сервер документов для Astra Linux на сервер web-клиента
Для возможности предпросмотра файлов в web-клиенте, их консолидации и объединения версий файлов, на сервере web-клиента нужно установить Р7-офис сервер документов. Ставить его нужно именно на Linux-сервер, где запущен сервер web -клиента.
Самый быстрый вариант разворачивания Р7-офис сервер документов описан в статье вендора данного продукта.
В ней предлагается развернуть уже настроенный docker контейнер со всеми необходимыми компонентами.
Установка Docsvision на Astra Linux
После подготовительных работ можем приступать непосредственно к установке Docsvision на сервере Astra Linux. Предварительно требуется подключить репозитории Microsoft, чтобы установить дополнительные компоненты поддержки работы кода, написанного на .NET 6
- Подключить репозиторий Docsvision (добавить ключ подписи репозитория, добавить репозиторий, обновить БД пакетов)
- Подключить репозитории Microsoft
- sudo apt-get install packages-microsoft-prod
- Поднять приоритет пакетов репозитория Microsoft
в файл /etc/apt/preferences.d/microsoft.pref добавить строки:
Package: dotnet* aspnet* netstandard* Pin: origin packages.microsoft.com Pin-Priority: 910
После подготовки устанавливаем модуль платформы, а вместе с ним пакеты базовых объектов и конструктор согласований, утилиту активации, файловый сервис и модуль полнотекстового индексирования. Дополнительно можно сразу установить оставшиеся базовые модули платформы, чтобы не возвращаться к этой задаче позже: web-клиент, сервис настроек, сервис внешнего API, консоль управления docsvision, службу фоновых процессов и модуль управления процессами.
Конфигурирование Docsvision на Astra Linux
После установки модулей Docsvision начинаем работать с файлом конфигурации платформы. Он включает различные параметры. Обратим внимание на форматы ввода данных. В одних параметрах учётная запись указывается: «имя пользователя @ домен», а в других «домен / пользователь» - эти особенности форматов указаны в документации, в шаблонах конфигураций. Актуальные версии платформы поддерживают сразу нескольких доменов, значит, в систему могут войти пользователи из разных доменов.
Дополнительно посмотрим на параметр ApiKey. Для корректной работы строка, указанная в этом параметре, должна быть одинаковой для всех модулей, которые взаимодействуют друг с другом. То есть, если в одном из конфигурационных файлов модулей есть данный параметр, то его нужно указать точно таким же, как он указан в конфигурационном файле платформы.
Затем не забываем активировать сервер Docsvision и завершаем заполнение конфигурационного файла и сервиса полнотекстового индексирования.
Установка Docsvision на Windows
Пакет поставки Docsvision Linux Edition содержит в себе Windows-компоненты, необходимые для работы консоли настройки, консоли web-клиента и конструктора разметок. Так как сам сервер находится на отдельной Linux машине, то нужно добавить специальный ключ в реестр Windows машины и добавить две переменные окружения, для того чтобы консоль смогла подключиться к серверу на Linux.
- В реестре добавить адрес сервера приложений Docsvision
reg add HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\Site /v ServerURL /t REG_SZ /d http://dvserver.domain.com:5000/api/v1 - Добавить системную учётную запись Docsvision в переменные окружения
setx DV_SystemUserAccount account@domain.com setx DV_SystemUserPassword password
Добавление БД Docsvision
Выполнив все предыдущие шаги и удостоверившись в работоспособности сервера приложений, можно запустить консоль настройки Docsvision и подключить существующую базу данных, после чего обновить ее. В консоли настройки часть функциональности, например связанная с настройкой workflow, либо с настройкой сайта docsvision будет недоступна, так как эти настройки теперь выполняются на уровне конфигурационных файлов находящихся на Linux сервере.
Конфигурирование базовых модулей на Astra Linux
После подключения базы можно перейти к конфигурированию базовых модулей на сервере Astra Linux. Файлы и пути, по которым будет выполняться конфигурация модулей:
- Конфигурация Web-клиента в файле /usr/lib/docsvision/webclient/appsettings.json
- Конфигурация Сервиса настроек /usr/lib/docsvision/settingsservice/appsettings.json
- Конфигурация Сервиса внешнего API Консоли управления Docsvision/usr/lib/docsvision/externalapi/appsettings.json
- Конфигурация Консоли управления Docsvision /usr/lib/docsvision/managementconsole/appsettings.json
- Конфигурирование Службы фоновых операций /usr/lib/docsvision/workerservice/Configuration.json и /usr/lib/docsvision/workerservice/appsettings.json
- Конфигурирование модуля управления процессами /usr/lib/docsvision/workflow/appsettings.json
Настройка web-клиента на Windows
Так как сервер web-клиента расположен на другой машине, то для его запуска требуется прописать адрес сервера Docsvision в панели управления web-клиента и базу данных в конфигурационном файле панели. Для работы конструктора web-разметок также нужно дописать конфигурационный файл конструктора.
Подготовка рабочего места администратора на Windows
- Скачать клиентскую часть модулей Платформа и Windows-клиент
- Установить модули в режиме для всех пользователей
- Запустить Windows-клиент, при первом запуске произведется установка всех оставшихся модулей
- Завести пользователей в справочнике сотрудников и включить их во все необходимые системные группы
Чтобы обеспечить пользователям доступ к системе через web-клиент, администратор системы должны завести пользователей в справочнике сотрудника. Для этого администратор системы должен запустить систему на Windows-машине. Добавить пользователя в группу можно либо через конфигурационный файл, который находится на Linux-сервере, или через справочник сотрудников. В справочник сотрудника теперь добавлены системные группы на подобие тех, что были ранее в Windows-версии Docsvision.
Настройка Kerberos аутентификации на клиентской стороне
Для работы kerberos аутентификации мы в самом начале добавляли на Linux-машину keytab-файл. Далее чтобы на клиенте можно было авторизоваться без ввода своих учётных данных, создадим нужные политики на клиентских машинах Linux, либо Windows, для запуска веб-клиента в браузере Google Chrome. Эти политики обязательно должны быть настроены и для браузера, в котором будет запускаться консоль управления, иначе администратор не сможет ее открыть.
- На Linux для браузера Chrome в файле /etc/chromium/policies/managed/test_policy.json (путь для Astra Linux)
{ "AuthNegotiateDelegateAllowlist": "*. domain.com", "AuthServerAllowlist": "*. domain.com", "AuthSchemes": "ntlm,negotiate" }
- На Windows в реестре в ветке HKEY_CURRENT_USER\SOFTWARE\Policies\Google\Chrome создать строковые ключи AuthNegotiateDelegateAllowlist, AuthServerAllowlist, AuthSchemes со значениями как указано выше
Настройка службы фоновых операций через консоль управления
Настройка подключения службы фоновых операций к серверу Docsvision не отличается от предыдущих версий платформы.
DVWebTool
Если пользователи web-клиента Docsvision продолжают работать на Windows, то в некоторых сценариях работы на машине должна быть запущена утилита DVWebTool. Чтобы эта утилита была доступна для установки пользователям, необходимо выполнить следующие шаги:
- На главной странице Панели управления нажмите кнопку Пересобрать DVWebTool
- Скопировать каталог DVWebTool на сервер Linux по пути /lib/docsvision/webclient/Content/Tools
- Перезапустить сервис dvwebclient
DVSupService
Аналогичная по функциональности, но для машин пользователей web-клиента на Linux, создана утилита DVSupService. Описание её установки:
- Установить на клиентское место сервис DVSupService
sudo apt-get install docsvision-dvsupservice
- При необходимости отредактировать конфигурационный файл /usr/lib/docsvision/dvsupservice/appsettings.json
Установка компонентов КриптоПро для возможности подписания
Если пользователи работают с веб-клиентом со своей Linux-машины, то для работы простой подписи потребуется установка на клиентской машине компонентов КриптоПро. Установить их можно вручную по указанной ссылке так и развернув подготовленный нами докер контейнер. На Windows машине для простой подписи компоненты КриптоПро не нужны. Если же требуется подписание сертификатом, то как для Windows так и для Linux клиентских мест необходимо развернуть докер контейнер с конфигурированным в нём компонентами КриптоПро.