1. Общие сведения о программе

1.1. Обозначение и наименование программы

Полное наименование: Типовое тиражируемое программное обеспечение витрин данных конфигурации «Лайт».

Условное обозначение: ПО «Витрина данных Лайт».

1.2. Назначение программы

Национальная система управления данными (далее – НСУД) представляет собой систему, состоящую из взаимосвязанных элементов информационно-технологического, организационного, методологического, кадрового и нормативно-правового характера и обеспечивающую достижение целей и выполнение задач, обозначенных в Концепции Национальной системы управления данными, утвержденной распоряжением Правительства Российской Федерации от 3 июня 2019 года № 1189-р.

НСУД предназначена для управления информацией, содержащейся в информационных системах органов и организаций государственного сектора, а также в информационных ресурсах, созданных в целях реализации полномочий органов и организаций государственного сектора (далее – государственные данные) и для осуществления информационного обмена между Поставщиками и Получателями данных, присоединившимися к НСУД (далее – Участники НСУД).

Управление процессами информационного обмена между Участниками НСУД осуществляется средствами федеральной государственной информационной системы «Единая информационная платформа Национальной системы управления данными» (далее – ФГИС «ЕИП НСУД»).

Для передачи данных между Участниками НСУД используется среда взаимодействия НСУД, состоящая из Системы межведомственного электронного взаимодействия 3.0 (далее – СМЭВ) и (или) подсистемы обеспечения доступа к данным СМЭВ (далее – ПОДД СМЭВ) (СМЭВ 4.0), обеспечивающих транспорт и процессинг данных, а также агентов ПОДД СМЭВ, устанавливаемых на стороне Участников НСУД.

Программа является частью НСУД и предназначена для загрузки публикуемых данных в отдельную БД на стороне Поставщика данных. Программа представляет собой типовое программное обеспечение, устанавливаемое на стороне поставщиков данных.

1.3. Возможности программы

Программа обеспечивает выполнение следующих функций:

  • автоматическая настройка взаимосвязей между компонентами программы;

  • автоматический запуск всех необходимых компонентов программы после установки;

  • автоматическая настройка витрины и структуры ее таблиц на основании содержимого XML-файла, загружаемого через пользовательский web-интерфейс;

  • выгрузка шаблона через графический интерфейс (для упрощения процесса подготовки загружаемых данных);

  • загрузка данных в витрину:

  • через графический интерфейс;

  • REST API;

  • файловый обмен.

  • настройка параметров работы витрины через графический интерфейс;

  • выполнение запросов на предоставление данных в соответствии с протоколом ПОДД через механизмы СМЭВ ПОДД.

2. Подготовка к установке

2.1. Требования к серверу

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

  • CentOS 7.9 (далее - CentOS);

  • РЕД ОС версии 7.2 (далее - РЕД ОС);

  • АЛЬТ Сервер 8 СП (далее - АЛЬТ ОС).

Минимальные и рекомендованные системные требования к серверу для установки Программы приведены в Таблица 2.4.

Таблица 2.4 Требования к серверному оборудованию

Требования к

Минимальные

Рекомендуемые

Процессор (CPU)

4 ядра

10 ядер

Оперативная память (RAM)

16 Гб

128 Гб

Жесткий диск (HDD)

100 Гб

500 Гб

2.2. Предварительные действия

Примечание

Установка Программы производится в закрытом контуре (без необходимости доступа к сети Интернет).

Перед установкой Программы необходимо выполнить следующие предварительные действия:

  1. Установить на сервер одну из операционных систем:

  2. Создать пользователя datamart с правами sudo (см. раздел Создание пользователя).

  3. Проверить настройки Firewall и отключить при необходимости (см. раздел Отключение межсетевого экрана).

  4. Выключить SELinux (см. раздел Отключение SELinux).

  5. Указать соответствующий местоположению сервера часовой пояс (см. раздел Выбор часового пояса).

  6. Настроить ssh-подключение к серверу, на котором планируется установка (см. раздел Подключение к серверу через SSH-клиент PuTTY).

  7. Создать приватный и публичный ssh-ключ для пользователя datamart (см. раздел Создание SSH-ключей).

  8. Скопировать публичный ключ на сервер (см. раздел Копирование ssh-ключей на сервер).

  9. Скопировать архив программы (см. раздел Копирование архива программы).

  10. Установить Docker (см. раздел Установка Docker).

  11. Установить библиотеку python-docker-py (см. раздел Установка библиотеки python-docker-py).

  12. Настроить логирование (см. раздел Настройка логирования в Docker).

  13. Перезапустить Docker (см. раздел Перезапуск Docker).

  14. Добавить пользователя datamart в группу docker (см. раздел Добавление пользователя в группу docker).

  15. Настроить Ansible (см. раздел Настройка Ansible).

2.2.1. Установка операционной системы

2.2.1.1. Установка CentOS

Подробная инструкция по установке операционной системы CentOS (версия 7.9) можно посмотреть на официальном сайте разработчика: https://docs.centos.org/en-US/centos/install-guide/.

После установки операционной системы CentOS обновите локальную базу пакетов, для этого выполните следующую команду:

sudo yum check-update

2.2.1.2. Установка РЕД ОС

Подробная инструкция по установке операционной системы РЕД ОС (версии 7.2) можно посмотреть на официальном сайте разработчика в документе «Руководство администратора по РЕД ОС 7.2».

После установки операционной системы РЕД ОС обновите локальную базу пакетов, для этого выполните следующую команду:

sudo yum check-update

2.2.1.3. Установка АЛЬТ Сервер 8 СП

Подробная инструкция по установке операционной системы АЛЬТ Сервер 8 СП можно посмотреть на официальном сайте разработчика в документе «Руководство администратора».

После установки операционной системы АЛЬТ ОС обновите локальную базу пакетов и установите программу sudo.

Внимание

Обновление пакетов осуществляется только с лицензионного носителя операционной системы «АЛЬТ Сервер 8 СП»! Для некоторых версий ОС «АЛЬТ Сервер 8 СП» необходимо подключение к Интернету на этапе установки пакетов python3-module-docker и python3-websocket-client из сертифицированного репозитория компании-разработчика операционной системы, подробное описание приведено в разделе Установка библиотеки python-docker-py!

Для обновления пакетов войдите в систему с правами пользователя root и выполните команду:

apt-get update

Для установки программы sudo выполните команду:

apt-get install sudo

Отредактируйте права sudo, для этого выполните команду:

visudo

В открывшемся файле снимите комментарий со следующей строки:

WHEEL_USERS ALL=(ALL) ALL

Выйдите из пользователя root, для этого выполните команду:

exit <enter>

2.2.1.4. Установка Astra Linux 1.7 (уровень защищенности «Воронеж»)

Подробная инструкция по установке операционной системы Astra Linux 1.7 (уровень защищенности «Воронеж») можно посмотреть на официальном сайте разработчика: https://astralinux.ru/products/astra-linux-special-edition/documents-astra-se/.

После установки операционной системы CentOS обновите локальную базу пакетов, для этого выполните следующую команду:

sudo yum check-update

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

Для установки программы рекомендуется создать отдельного пользователя, для этого следует выполнить следующие действия:

  • создать пользователя datamart;

  • отключить для пользователя пароль при вызове sudo (необходимо для автоматической установки);

  • назначить пользователю права sudo.

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

Чтобы создать пользователя datamart и установить для него пароль, выполните команды:

sudo useradd datamart
sudo password for user:
sudo passwd datamart
sudo password for user:
Changing password for user datamart.
New password:
Retype new password:

После успешных действий система выведет сообщение:

passwd: all authentication tokens updated successfully.

2.2.2.2. Отключение пароля

Чтобы отключить пароль sudo для пользователя datamart, надо добавить в настройки (пользователя или группы) директиву NOPASSWD. Для этого последовательно выполните команду:

sudo visudo

В открывшемся конфигурационном файле, с помощью команд редактора vi

Для CentOS и РЕД ОС

Отредактируйте следующие записи:

datamart ALL=(ALL) NOPASSWD: ALL

Для АЛЬТ ОС

Отредактируйте следующие записи:

# uncomment line
WHEEL_USERS ALL=(ALL) NOPASSWD: ALL

Сохраните изменения и закройте файл.

2.2.2.3. Добавление пользователя в группу администраторов

Чтобы добавить пользователя в группу администраторов, у которых есть права выполнения команды sudo, выполните следующую команду:

sudo usermod -aG wheel datamart

Для проверки вы можете переключиться в учетную запись datamart и вывести список содержимого директории /root, которое обычно доступно только для пользователя root user:

su -datamart
Password:
sudo ls -la /root

2.2.3. Отключение межсетевого экрана

2.2.3.1. Для CentOS и RedOS

Для корректной установки потребуется отключить службу FirewallD операционной системы CentOS.

Что просмотреть текущий статус работы приложения используйте команду firewall-cmd:

sudo firewall-cmd --state

В случае, если служба FirewallD запущена, команда выше выведет следующее сообщение:

running

Вы можете временно остановить службу FirewallD для этого выполните следующую команду:

sudo systemctl stop firewalld

Следует учитывать, что данная команда только временно отключит службу, при последующей перезагрузке служба FirewallD снова будет запущена.

Чтобы отключить автоматический запуск службы FirewallD при загрузке операционной системы выполните команду

sudo systemctl disable firewalld

После отключения проверьте, что статус службы изменился на not running, для этого выполните команду

sudo firewall-cmd --state
not running

2.2.3.2. Для AltOS

По умолчанию выключен. Никаких действий не требуется.

2.2.4. Отключение SELinux

Только для CentOS и RedOS!

Для корректной установки необходимо отключить SELinux, для этого выполните следующие действия:

1. Проверьте параметры запуска SELinux при загрузке системы. Для этого выполните следующую команду:

cat /etc/selinux/config

2. Если параметр SELINUX имеет значение enforcing, отключите запуск SELinux при загрузке системы. Для этого следует в файле /etc/selinux/config указать значение SELINUX=disabled и перезагрузите сервер. SELinux будет отключен.

Открыть и отредактировать файл /etc/selinux/config можно с помощью редактора vi, для этого выполните команду:

sudo vi /etc/selinux/config

3. Проверьте, что служба отключена. Для этого выполните команду:

sestatus

В ответ вы должны получить:

SELinux status: disabled

2.2.5. Выбор часового пояса

2.2.5.1. Для CentOS и RedOS

Проверьте, что установлен корректный часовой пояс. В нашем случае, на команду timedatectl, должна выводиться строка Time zone: Europe/Moscow (MSK, +0300).

Пример команды:

timedatectl

Пример ответа:

Local time: Mon 2021-12-20 12:06:39 MSK
Universal time: Mon 2021-12-20 09:06:39 UTC
RTC time: Mon 2021-12-20 09:06:49
Time zone: Europe/Moscow (MSK, +0300)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a

Если результат отличается, укажите соответствующий местоположению сервера часовой пояс.

Пример команды для выбора московского часового пояса:

sudo timedatectl set-timezone Europe/Moscow

2.2.5.2. Для AltOS

Пример команды для выбора московского часового пояса:

sudo apt-get install tzdata
sudo timedatectl set-timezone Europe/Moscow

2.2.6. Подключение к серверу через SSH-клиент PuTTY

Настройку ssh-подключения к серверу можно выполнить, используя клиент удалённого доступа - PuTTY.

2.2.7. Создание SSH-ключей

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для переключения на учетную запись datamart выполните команду:

sudo su - datamart

Для подключения Ansible к серверу по протоколу SSH необходимо создать SSH-ключи.

Для аутентификации пользователя на сервере используются два ключа: приватный и публичный.

Чтобы сгенерировать SSH-ключи для операционной системы Linux, выполните следующие действия:

1. Откройте терминал на компьютере и выполните команду

ssh-keygen -t rsa

Следует оставить все значения по умолчанию.

Примечание

Если команда ssh-keygen не найдена, установите пакет openssh.

  1. После выполнения команды будет предложено указать имена файлов, в которые будут сохранены ключи и ввести пароль для закрытого ключа. По умолчанию используется имя id_rsa, ключи будут созданы в директории ~/.ssh.

Публичная часть ключа будет сохранена в файле с названием <имя_ключа>.pub.

3. Будет выведено следующее сообщение:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/datamart/.ssh/id_rsa).
  1. Нажмите клавишу Enter. После этого ключ будет сохранен в указанную директорию по умолчанию. Далее вам будет предложено ввести кодовое слово для дополнительной защиты ключа. Вы можете пропустить данный шаг и нажать Enter.

  2. На запрос указать кодовое слово, не вводя его нажмите клавишу Enter.

Процедура создания ключей завершена, ключи сохранены в директории ~/.ssh/ `` в файлах ``id_rsa и id_rsa.pub.

2.2.8. Копирование ssh-ключей на сервер

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для переключения на учетную запись datamart выполните команду:

sudo su - datamart

Для копирования ssh-ключей в список разрешенных ключей выполните команды:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

2.2.9. Копирование архива программы

  1. Для загрузки на сервер файла с архивом программы используйте SFTP-клиент (например, WinSCP или Filezilla). Для авторизации используйте логин и пароль учетной записи администратора(datamart) созданной при установке ОС (см. раздел Раздел 2.2.2). Загрузите файл с архивом программы в домашнюю директорию администратора ( ~/ ).

  2. Подключитесь по SSH к серверу (см. раздел Подключение к серверу через SSH-клиент PuTTY), используя логин и пароль учетной записи администратора.

3. Переместите файл с архивом программы в домашнюю директорию пользователя datamart командой:

mv ~/dtm-lite-1.11.1.tgz /home/datamart/

где,

  • dtm-lite-1.11.1.tgz - название архива программы.

  • datamart - имя пользователя.

Примечание

Обратите внимание, что название и версия файла с архивом может отличаться в зависимости от версии программы.

2.2.10. Распаковка архива

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для переключения на учетную запись datamart выполните команду:

sudo su - datamart

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

tar -xzvf dtm-lite-1.11.1.tgz

Примечание

Обратите внимание, что название и версия файла с архивом может отличаться в зависимости от версии программы.

2.2.11. Установка Docker

2.2.11.1. Установка Docker в CentOS

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для переключения на учетную запись datamart выполните команду:

sudo su - datamart

Полную инструкцию по установке Docker можно просмотреть на официальном сайте разработчиков: https://docs.docker.com/engine/install/centos/.

Приведем описание основных шагов инструкции.

Проверяем, установлен ли Docker командой:

sudo systemctl status docker

Если ответ содержит сообщение:

"Unit docker.service could not be found."

Значит Docker не найден и нужно его установить.

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

sudo yum install rpms/docker/CentOS/7.9/*.rpm

Добавляем Docker в автозагрузку:

sudo systemctl enable docker

Запускаем Docker:

sudo systemctl start docker

Проверяем работоспособность Docker командой:

sudo systemctl status docker

2.2.11.2. Установка Docker в RedOS

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для переключения на учетную запись datamart выполните команду:

sudo su - datamart

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

sudo yum install rpms/docker/RedOS/7.2/*.rpm

Добавляем Docker в автозагрузку:

sudo systemctl enable docker

Запускаем Docker:

sudo systemctl start docker

2.2.11.3. Установка Docker в AltOS

Внимание

Действия этого раздела необходимо выполнять под созданной учетной записью datamart (см. раздел Создание пользователя).

Для переключения на учетную запись datamart выполните команду:

sudo su - datamart

Установить docker можно следующей командой:

sudo apt-get install docker-ce

Удалить сервис containerd:

sudo rm -f /lib/systemd/system/containerd.service

Затем необходимо запустить соответствующую службу:

sudo systemctl unmask docker
sudo systemctl start docker

2.2.12. Установка библиотеки python-docker-py

Для CentOS и РЕД ОС

Для установки библиотек python-docker-py без доступа к интернет, выполните следующую команду:

sudo yum install rpms/python/CentOS/7.9/*.rpm

Для РЕД ОС

sudo yum install rpms/python/RedOS/7.2/*.rpm

Для АЛЬТ ОС

Внимание

В некоторых версиях «АЛЬТ Сервер 8 СП» (например, АЛЬТ Сервер 8.4 СП) в лицензионный диск с операционной системой не входят пакеты python3-module-docker и python3-websocket-client, поэтому они будут установлены из сертифицированного репозитория компании-разработчика операционной системы, для этого необходим доступ в Интернет!

Для установки выполните следующую команду:

sudo apt-get install python3-module-docker

2.2.13. Настройка логирования в Docker

Для CentOS и РЕД ОС

Настройка логирования в Docker осуществляется с помощью файла конфигурации. Путь к файлу конфигурации — /etc/docker/daemon.json. Если этого файла не существует, его необходимо создать.

Добавьте в файл следующие настройки логирования:

{
  "log-opts": {
    "max-file": "1",
    "max-size": "300m"
  }
}

где,

  • max-file - ограничение по количеству файлов (настройки ротации). Максимальное количество файлов журнала, которые могут быть созданы. Если при просмотре журналов создаются лишние файлы, самый старый файл удаляется. Действует только тогда, когда max-size (см. ниже) также установлен. Положительное целое число. По умолчанию 1.

  • max-size - устанавливает ограничение по размеру лог-файла (k, m или g). По умолчанию - 1 (неограниченно).

Для АЛЬТ ОС

Выполните команду:

sudo sed -i 's/journald/json-file/' /etc/docker/daemon.json

2.2.14. Перезапуск Docker

Для применения настроек, выполненных на предыдущем шаге необходимо перезапустите Docker.

Для CentOS и РЕД ОС

Выполните команду:

sudo systemctl restart docker

Для АЛЬТ ОС

Выполните команду:

sudo systemctl restart docker

2.2.15. Добавление пользователя в группу docker

Далее, нужно добавить пользователя datamart в группу docker. Для этого подключитесь к серверу по SSH (например, через Putty) и выполните команду:

sudo usermod -aG docker datamart

Внимание

Для применения настроек изменения группы выполните повторную авторизацию под пользователем datamart!

2.2.16. Настройка Ansible

Внимание

Действия этого раздела необходимо выполнять под созданной в учетной записью datamart (см. раздел Создание пользователя).

Для переключения на учетную запись datamart выполните команду:

sudo su - datamart

Для загрузки docker-образа выполните команду:

docker image load -i images/ansible-2.9-centos-7.tar

Чтобы создать alias для вызова Ansible выполните команду:

echo "alias docker-ansible-cmd='docker run --rm -it -v $(pwd)/ansible:/ansible -v ~/.ssh/id_rsa:/root/.ssh/id_rsa --workdir=/ansible cr.yandex/crpl8ogf99r0eaq13vkd/ansible:2.9-centos-7 '" >> .bashrc
. .bashrc

Далее нужно перечитать конфигурационный файл, чтобы применить созданные alias. для этого выполните команду:

source .bashrc

Чтобы проверить установку Ansible в контейнере, выполните команду Ansible, позволяющую вывести номер версии:

docker-ansible-cmd ansible --version