Запуск СЭД Docsvision на ОС Astra Linux

Актуальный релиз платформы 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

  1. Подготовить 2 машины: одну на Linux, вторую на Windows
    Для запуска Docsvision на ОС Astra Linux потребуется одна машина сервера Linux, которая будет выполнять роль сервера приложений, web-клиент, и всех остальных модулей docsvision. И вторая машина с Windows-сервером, необходимая для администрирования системы, работы консоли настройки, консоли web-клиента.
  2. Установить и сконфигурировать Р7-офис на сервере web-клиента для возможности предпросмотра и объединения версий.
  3. Установить и сконфигурировать Linux компоненты Docsvision.
  4. Установить и сконфигурировать Windows компоненты Docsvision.
  5. Подключить и обновить БД 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 клиентских мест необходимо развернуть докер контейнер с конфигурированным в нём компонентами КриптоПро.

Похожие публикации
21 марта 2024
Практические аспекты и опыт миграции БД в рамках СЭД на базе платформы Docsvision с использованием утилиты миграции.
20 марта 2024
Как оптимизировать настройки платформы, изменить обслуживание системы.
Подпишитесь на рассылку
Нажимая на кнопку «Отправить», вы даёте согласие на обработку ваших персональных данных, в соответствии с политикой «ДоксВижн» в отношении обработки персональных данных.
Поддержка МЧД в СЭД Как изменится порядок подписания? Как подготовить предприятие к изменениям? Как адаптировать СЭД?