3. Настройка подключений к инфраструктуре
Физическая установка услуг может производиться на физические сервера, виртуальные машины и в среду K8s. При этом компоненты услуг могут быть распределены произвольно в по разным физическим ресурсам и сетям, в зависимости от задач конфигурации услуги.
Для настройки и установки компонентов услуг, требуется обеспечить физическое подключение Datamart Platform Studio по SSH к ресурсам дата-центров и/или среды K8s.
Для создания и настройки инфраструктуры может использоваться интеграция Datamart Platform Studio с различными платформами виртуализации (гипервизорами). Функции, доступные при интеграции с гипервизорами описаны в Раздел 4 Интеграция с гипервизорами (платформами виртуализации).
Подключение и взаимодействие с серверами возможно как по shh-ключу (по умолчанию), так и по паролю.
3.1. Добавление дата-центров (ДЦ)
3.1.1. Общие положения
Для работы Витрин данных (Услуг) требуется произвести инсталляции приложений, которые будут располагаться на серверах, объединенных в логические группы (ДЦ).
Сервера могут находиться в различных Датацентрах (ДЦ) с различным уровнем доступа. Настройка доступа к отдельным серверам и ДЦ, к которым нет прямого доступа с сервера, на котором устанавливается Datamart Platform Studio описана в руководстве администратора Раздел 5 Настройка маршрутов SSH и доступ к сетям.
Понятие ДЦ в Datamart Platform Studio является виртуальным и объединяет в себя группу серверов со схожими настройками доступа. Если внутри одного физического датацентра есть несколько групп серверов в разных сетях, доступ к которым должен осуществляться по разным правилам, то имеет смысл добавить несколько ДЦ в Datamart Platform Studio.
Примечание
Для инсталляции приложений в среду K8s нет необходимости добавлять ДЦ. Файл конфигурации подключения компонента Витрины к K8s добавляется в настройках Витрины данных (Услуги).
3.1.2. Добавление ДЦ
По умолчанию в настройках программы Datamart Studio, в зависимости от комплектации, может быть уже включен компонент Локальный виртуальный ДЦ. В локальный ДЦ имеет смысл добавлять сервера, находящиеся в одной локальной сети с сервером, на котором установлена Datamart Platform Studio.
В случае более сложной конфигурации сети, требуется добавить новые ДЦ.
Для каждого ДЦ можно настроить группу глобальных переменных (см: Раздел 7.6 Глобальные настройки), в которых будут указаны особенности доступа к ресурсам в данном ДЦ.
В карточке датацентра во вкладке Сети и маршруты
администратор может указать конфигурацию
шлюзов, настроенных для доступа Datamart Platform Studio в сеть данного ДЦ для установки приложений на
сервера данного ДЦ (см. Раздел 5 Настройка маршрутов SSH и доступ к сетям)
3.1.3. Конфигурация пользователя ДЦ
Для доступа к группе серверов ДЦ, в целях безопасности, может быть назначено
определенное имя пользователя (по умолчанию используется пользователь datamart
).
Для этого в карточке датацентра укажите соответствующее имя в поле «Пользователь для запуска установок». Соответственно, на используемых Datamart Platform Studio серверах данного ДЦ необходимо будет добавить пользователя с этим именем и прописать SSH-ключ в каталог данного пользователя.
Примечание
Пользователю, который будет добавлен на сервера для запуска команд Ansible обязательно предоставить доступ к sudo без пароля.
3.1.4. Настройка ssh-ключа для ДЦ
При добавлении нового ДЦ приватный и публичный ssh-ключ генерируется для ДЦ автоматически и никаких дополнительных действий не требуется. Кроме этого, автоматически генерируется пара для резервного ssh-ключа.
Если есть необходимость использовать специфический приватный ssh-ключ для доступа к серверам ДЦ то это можно сделать в настройках SSH для ДЦ, загрузив файл приватного ключа ДЦ. (см. Рисунок 3.11).
Примечание
Разрешение на загрузку специфических приватных ключей для ДЦ и для серверов регулируется в .env файле настроек Datamart Platform Studio. По умолчанию - ОТКЛЮЧЕНО.
При добавлении нового приватного ключа будет автоматически сгенерирован новый публичный ключ и добавлен на сервера, подключенные в ДЦ c доступом по ключу. Старый публичный ssh-ключ на серверах будет удален после успешного добавления нового ключа.

Рисунок 3.11 Настройки SSH для ДЦ
3.1.5. Ротация и замена ssh-ключа ДЦ
Если для доступа к серверам требуется по соображениям безопасности сменить ключ, то в настройках SSH для ДЦ можно выполнить эти действия (см. Рисунок 3.12).
При возникновении ситуации компрометации ключа, основной публичный ключ будет удален администратором и доступ к серверам, по основному ключу заблокирован. Для разрешения данной ситуации в Datamart Platform Studio предусмотрены механизмы замены ключа (генерация нового основного ключа ДЦ) и перехода на резервный ключ (доступ к серверам происходит по резервному ключу, основной ключ удаляется и генерируется новый резервный ключ):

Рисунок 3.12 Операции с SSH-ключами в ДЦ
3.1.6. Лимиты ресурсов ДЦ
В карточке ДЦ в левом верхнем углу отображается количество серверов, зарегистрированных в текущем ДЦ и счетчик используемых ресурсов. Если для ДЦ установлены лимиты на использование ресурсов (CPU, RAM, Disk), то при превышении лимита индикация будет отображена на счетчике.

Рисунок 3.13 Счётчик ресурсов ДЦ
Примечание
В текущей версии Datamart Platform Studio счетчик ресурсов работает в режиме предупреждения и не блокирует добавление ресурсов к ДЦ при превышении лимита.
3.2. Добавление серверов в ДЦ, настройка доступа
Для инсталляции приложений необходимо добавить аккаунты серверов, на которых будет производиться установка. Аккаунт сервера содержит информацию об IP-адресе, хосте, FQDN, наименовании и характеристиках сервера.
На странице «Серверы» рабочего пространства «Управление ресурсами» необходимо выбрать ДЦ, в который мы планируем добавить сервера, и нажать кнопку «Добавить сервер» (см. Рисунок 3.14).

Рисунок 3.14 Список серверов ДЦ
При добавлении сервера, фактически происходит регистрация записи о новом сервере. В карточке необходимо обязательно указать имя хоста, ip-адрес и, при необходимости, FQDN добавляемого сервера (см. Рисунок 3.15).
Примечание
В случае отсутствия FQDN для подключения к серверу будет использоваться его ip-адрес.
При добавлении каждого нового сервера в ДЦ, проверяется уникальность по параметрам: hostname
, ip
, FQDN
. В состав одного ДЦ невозможно добавить запись о двух разных серверах с одинаковыми параметрами hostname
, ip
, FQDN
(исключение составляет пустое поле IP с флагом «Назначить IP автоматически», в этом случае ip-адрес будет указан для серверов после создания ВМ в гипервизоре).
При добавлении сервера с ssh-доступом по нестандартному порту, смените значение порта (по умолчанию для доступа по ssh используется порт 22).

Рисунок 3.15 Интерфейс добавления сервера
Примечание
Флаг «Управляемый сервер» означает, что Datamart Platform Studio разрешено использовать Ansible-плэйбуки выполнения операций на сервере. Флаг включен по умолчанию. Сервер с выключенным флагом может использоваться только в качестве JumpHost в ssh-маршрутах.
Флаг «Назначить IP автоматически» используется, если на момент создания аккаунта сервера, администратору заранее неизвестен ip-адрес, который будет назначен при последующем создании ВМ в гипервизоре и внесён в данное поле автоматически после синхронизации.
3.2.1. Настройки подключения
Подключение Datamart Platform Studio к серверу по ssh по умолчанию происходит по FQDN. Если не указан FQDN, то подключение будет происходить по ip-адресу.
Примечание
В случае отсутствия записей DNS для сервера может потребоваться организовать подключение по hostname. В этом случае потребуется внесение hostname серверов в файл /etc/hosts и указание hostname сервера в поле FQDN.
Примечание
При установке услуги типа «Витрина данных НСУД», необходимо обеспечить видимость всех добавляемых серверов витрины по hostname в файле /etc/hosts для каждого сервера витрины. Это требуется для корректного обнаружения серверов по имени при связи приложений Витрин данных НСУД друг с другом.
В карточке сервера в разделе Настройки подключения
администратор может указать маршрут, который будет использоваться для доступа к серверу (см.: Раздел 5 Настройка маршрутов SSH и доступ к сетям).
Имя пользователя, пароль и ключ доступа к серверу по умолчанию используется из настроек ДЦ. Если требуется использовать специфические данные для сервера, их можно указать в разделе Настройки ssh подключения
.

Рисунок 3.16 Настройки ssh подключения к серверу
Примечание
Особенности конфигурации доступа к локальному серверу, если предполагается установка приложений услуги на том же сервере, на котором установлена Datamart Platform Studio описаны в разделе: Раздел 3.2.7.1 Особенности настройки ip-адреса в ssh.config для localhost (127.0.0.1).
3.2.2. Настройки связанной ВМ в гипервизоре
При создании аккаунта сервера в ДЦ, связанном с гипервизором, для сервера есть возможность указать параметры ВМ, которые будут использованы при создании соответствующей ВМ (см. Рисунок 3.17):
количество ядер;
размер оперативной памяти (Мб);
объем основного диска VDA (Гб);
объем дополнительного диска VDB (Гб);
имя образа (выбор из списка доступных для подключенного гипервизора);
имя сети по умолчанию (выбор из списка доступных для подключенного гипервизора);
Дополнительный диск VDB при создании ВМ будет автоматически подмонтирован в папку /opt.

Рисунок 3.17 Настройки связанной ВМ в гипервизоре
Примечание
После создания соответствующей ВМ в гипервизоре и синхронизации в поле ID ВМ Гипервизора будет занесен идентификатор ВМ, соответствующей данному аккаунту сервера в Datamart Platform Studio.
Более подробную информацию о взаимодействии с ВМ в гипервизоре см. в разделе Интеграция с гипервизорами (платформами виртуализации).
3.2.3. Добавление серверов списком
Если необходимо добавить не один сервер, а сразу группу серверов в ДЦ, то можно добавить сервера списком, нажав на кнпоку Добавить список (см. Рисунок 3.18).
Каждая новая запись сервера на новой строке.
Список параметров добавляемого сервера указывается в следующем порядке:
<ip> - IP адрес сервера (указывается, если известен)
<host> - hostname сервера = FQDN (обязательное поле. Если неизвестен или отсутствует, требуется указать IP)
<name> - индентификатор, имя (name) сервера в Datamart Platform Studio
Следующие поля требуется указать при необходимости создания ВМ в гипервизоре:
<cpu> — количество ядер
<ram> — объем оперативной памяти
<vda> — объем системного диска (vda)
<vdb> — объем основного диска с данными (vdb)
<image_id> — ID образа в гипервизоре
<network_id> — ID сети в гипервизоре
Имя датацентра можно указать при необходимости добавления группы серверов в конкретный ДЦ (если не указано, сервера будут добавлены в текущий ДЦ), или при добавлении списка серверов в разные ДЦ одним действием:
<cod> — индентификатор, имя (name) датацентра, в который требуется добавить сервер. Если такого ДЦ нет, он будет добавлен.
Пример формата:
192.168.1.1 hostname vm_name 2 4 40 100 123 ? ?
Если какой-то из параметров сервера при добавлении группы неизвестен, его можно пропустить, указав знак «?». Будет установлено значение по умолчанию. Если IP-адрес сервера не указан, он будет установлен в значение «0.0.0.0».
В разделе «Дополнительные поля» указать общие настройки для добавляемых списком серверов.
После добавления, по каждому серверу можно будет дополнительно отредактировать необходимую информацию, в карточке сервера.

Рисунок 3.18 Добавление списка серверов
3.2.4. Добавление ssh-ключа на сервер
Для осуществления ssh-подключений Ansible к серверам, на которых будут устанавливаться компоненты услуг, по умолчанию используются ssh-ключи и конфигурации в файлах ssh.config в папке dms-dirs/dms-data_centers/<имя_ДЦ>/ для каждого ДЦ, соответственно.
Имя пользователя и пароль по умолчанию, которые будут использоваться для доступа к серверам каждого отдельного ДЦ, указываются в настройках ДЦ в поле Имя пользователя и Пароль.
При необходимости, для отдельного сервера можно указать индивидуальные настройки имени пользователя и пароля в карточке сервера.
Публичный ключ на сервер можно загрузить либо при помощи Ansible из интерфейса Datamart Platform Studio (для загрузки ключа будет выполнен доступ по паролю), либо вручную в консоли сервера.
Примечание
Выполнение подключений и всех команд Ansible по умолчанию происходит по ключу. После успешной загрузки публичного ключа на сервер рекомендуется отключить доступ по паролю. Отключение доступа по паролю выключает доступ по паролю только для пользователя сервера, который указан в настройках сервера.
В случае, если для доступа к серверу требуется использовать специфический приватный ключ, отличный от ключа ДЦ, файл приватного ключа можно загрузить в карточке сервера, включив настройку Для доступа к серверу использовать приватный SSH ключ.
Примечание
Разрешение на загрузку специфических приватных ключей для доступа к серверам регулируется в .env файле настроек Datamart Platform Studio. По умолчанию - ВКЛЮЧЕНО.
3.2.4.1. Добавление ssh-ключа на сервер при помощи интерфейса Datamart Platform Studio
Для первичного добавления на сервер публичного ssh-ключа из интерфейса Datamart Platform Studio к серверу должен быть разрешен доступ по логину и паролю. По умолчанию для доступа к серверам в одном ДЦ используется единый логин и пароль, установленный в настройках ДЦ, но в настройках сервера можно его изменить и использовать для сервера специфический логин и пароль, если это требуется.

Рисунок 3.19 Настройка логина доступа к серверу
Для добавления ключа на сервер нужно нажать на кнопку «Управление», затем выбрать действие Добавить ssh-ключ
(см: Рисунок 3.20). По умолчанию используется логин и пароль из настроек ДЦ.

Рисунок 3.20 Добавление ssh-ключа на сервер по паролю
После успешного добавления ssh-ключа, произойдет автоматический сбор фактов с сервера. В случае успеха, сервер перейдет в категорию доступных к работе (значок голубого цвета).
Предупреждение
После успешного добавления ssh-ключа доступ по паролю к серверу рекомендуется отключить. Дальнейшее взаимодействие с сервером будет осуществляться только по ключу.
Если требуется сохранить доступ по паролю, необходимо при добавлении ключа отключить опцию Закрыть доступ по паролю
(включена по умолчанию).
Проверку и дальнейшее отключение доступа по паролю после добавления ssh-ключа можно выполнить из меню управления сервером или в разделе групповых действий с серверами.
3.2.4.2. Добавление ssh-ключа вручную из консоли сервера
Ключ требуется добавить для соответствующего пользователя в файл
/home/<username>/.ssh/authorized_keys
.
Для добавления вручную необходимо выполнить следующие операции:
Создайте каталог для ключей, если такого еще нет, выполнив команду:
sudo mkdir /home/<username>/.ssh
sudo touch /home/<username>/.ssh/authorized_keys
Установите права, выполнив команду:
sudo chmod 700 /home/<username>/.ssh
sudo chmod 600 /home/<username>/.ssh/authorized_keys
Скопируйте ключ на сервер:
В общем случае, для каждого сервера в ДЦ сгенерирован ключ, с
использованием которого происходит установка приложений. Этот ключ можно скопировать в карточке сервера (см. Рисунок 3.21) и добавить в соответствующий файл
authorized_keys
на выбранном сервере.

Рисунок 3.21 Копируем SSH ключ для добавления на сервер.
3.2.4.3. Проверка доступа к серверу по паролю
Для проверки наличия доступа по паролю к серверу можно воспользоваться пунктом меню управления сервером «Проверить доступ по паролю» (см: Рисунок 3.22). Проверка будет успешной только если доступ по паролю включен и в настройках сервера указаны корректный логин и пароль.

Рисунок 3.22 Проверить доступ на сервер по паролю
Примечание
По соображениям безопасности, доступ к серверу по паролю рекомендуется закрыть после успешного добавления доступа поо ключу.
3.2.5. Сбор фактов с сервера
Для того чтобы убедиться, что данные доступа к серверу указаны корректно и Datamart Platform Studio может установить с ним связь по SSH, на странице «Серверы» по кнопке «Управление» можно выбрать действие Загрузка фактов
, которая проверяет соединение и загрузку фактических данных (фактов) с сервера.
В случае успешного соединения с сервером и сбора фактов, всплывающее сообщение будет голубого цвета. В колонке «Факты обновлены» будет проставлена текущая дата и время.
Примечание
Настройка доступа к серверам в закрытом контуре через JumpHost или VPN описана в разделе Настройка маршрутов SSH и доступ к сетям.
В случае, если с сервером соединиться удалось, но обнаружено несоответствие в ip-адресе, hostname или FQDN сервера, то в катрочке сервера и логах будет отображено сообщение с указанием ошибки.

Рисунок 3.23 Предупреждение об ошибке в настройках сервера
В случае, если на сервер не был добавлен ssh-ключ и сбор фактов осуществить невозможно, то в колонке «Доступ» будет значение «Отсутствует», при этом нажав на кнопку «Управление» доступно действие Добавить SSH-ключ
.
Если ключ добавлен на сервер, но соединение с сервером установить не удалось, то будет отображено сообщение об ошибке. Подробное описание ошибки соединения можно посмотреть в логах сервера. В колонке «Факты обновлены» для данного сервера будет прочерк.
3.2.6. Пакетная загрузка ssh-ключа ДЦ на группу серверов
При добавлении группы серверов в ДЦ есть возможность пакетной загрузки ключей сразу на группу серверов. Для этого в списке серверов ДЦ необходимо нажать на кнопку групповой операции «SSH» (см. Рисунок 3.24). При этом будет произведена загрузка ключей на все те сервера ДЦ, куда ключ еще не был добавлен.
Примечание
Для пакетного добавления ключей требуется, чтобы для данной группы серверов был включен доступ по паролю.

Рисунок 3.24 Пакетная загрузка SSH-ключа на сервера ДЦ
Примечание
При включении опции Обновить ключ принудительно
, он будет обновлен и на тех серверах, куда уже был добавлен. Такое действие может потребоваться в случае смены приватного и, соответственно, публичного ssh-ключа для ДЦ.
Еще одним вариантом пакетной загрузки SSH-ключей на сервера является выбор в общем списке целевых серверов для загрузки ключей серверов и выбор группового действия в меню групповых действий «Сменить доступ по паролю на доступ по SSH-ключу» (см. Рисунок 3.25).
При этом на сервера будет загружен SSH-ключ и режим доступа по паролю для серверов будет автоматически отключен командой из Datamart Platform Studio.

Рисунок 3.25 Смена доступа по паролю на доступ по SSH-ключу
3.2.7. Настройка RemoteForward
В настройках сервера возможно указание настроек туннелей SSH в параметре RemoteForward. По умолчанию для новых серверов в Datamart Platform Studio, добавлены 2 туннеля:
RemoteForward 8881 nexus:8081; RemoteForward 8882 nexus:8082
Данная настройка означает, что в момент установки SSH-соединения с сервером, будут открыты локальные порты сервера 8881 и 8882, которые будут смотреть в порты 8081 и 8082, соответственно, docker-контейнера nexus на сервере Datamart Platform Studio.
3.2.7.1. Особенности настройки ip-адреса в ssh.config для localhost (127.0.0.1)
Примечание
При необходимости добавления локального сервера (сервера, на котором установлена Datamart Platform Studio) в список серверов, требуется указывать его внешний IP адрес (вместо 127.0.0.1), чтобы избежать неоднозначности в настройках сервера. Тогда все установки и конфигурации на этот сервер будут проходить так же, как и на другие сервера.
Для локального сервера localhost в файле /dms-servers/localhost/ssh.config
автоматически будет указан адрес 127.0.0.1
Для того, чтобы Ansible мог произвести корректное соединение с локальным сервером в
файле ssh.config
в поле Hostname
для локального сервера необходимо указать вместо 127.0.0.1
его реальный IP, например 10.10.0.10
:
Host 127.0.0.1
Hostname 10.10.0.10
StrictHostKeyChecking no
RemoteForward 8881 nexus:8081
Если в Datamart Platform Studio вы добавили несколько записей для локальных серверов, то потребуется обновить
ssh.config
в каждой соответствующей локальному серверу папке.
3.3. Работа с северами без использования SSH-ключей (по паролю)
Стандартный протокол взаимодействия с серверами в рамках Datamart Platform Studio предполагает наличие соответствующего публичного SSH-ключа на сервере и отключение доступа к серверам по паролю.
Выполнение ансибл-скриптов в текущей версии Datamart Platform Studio предполагается только с использованием ключа.
3.4. Подключение к среде K8s (Kubernetes)
Для подключения услуги к среде K8s в настройках услуги необходимо добавить конфигурационный файл, предоставленный администратором K8s:

Рисунок 3.26 Настройка подключения к K8s
Во вкладке «Обзор» при этом появится информация о добавленном файле конфигурации и возможность проверить подключение. В случае, когда добавлен корректный файл и подключение к K8s проходит успешно, статус устанавливается в состояние «Подключен» (см. Рисунок 3.27).
В этом случае пользователь Datamart Platform Studio сможет производить добавление инсталляций приложений в среду K8s, к которой настроен доступ в файле конфигурации. Проверка подключения производится в карточке услуги (см. Рисунок 3.27)

Рисунок 3.27 Проверка подключения к K8s
3.5. Пользовательские SSH-ключи
Для пользователя с ролью superadmin
в меню пользователя есть возможность зарегистрировать один или несколько собственных публичных SSH-ключей и далее добавить эти публичные ключи на выбранные сервера ДЦ.
Пользователь с ролью ssh_key_admin
может зарегистрировать публичные SSH-ключи других пользователей, отозвать пользовательские ключи, добавить публичные ключи на сервера.
При добавлении пользовательского ключа, пользователь, чей ключ добавлен на сервер получает возможность подключаться по протоколу SSH к серверу, на который был добавлен публичный ключ его SSH-клиента.
Примечание
Подключение должно производиться, соответственно, от имени пользователя сервера, в папку которого добавлен публичный SSH-ключ.
Последовательность действий, в общем случае, следующая:
Superadmin в своём SSH-клиенте (например PuTTY) генерирует пару ключей (Private + Public);
Superadmin в Datamart Platform Studio регистрирует собственный Public SSH-ключ;
Superadmin загружает средствами Datamart Platform Studio свой Public SSH-ключ на любой доступный из Datamart Platform Studio сервер
Проверить индикацию того, что соответствующий Public SSH-ключ загружен на сервер можно в разделе «Список SSH ключей» в карточке сервера или ДЦ.

Рисунок 3.28 Добавление публичного SSH-ключа пользователя
3.5.1. Управление пользовательскими SSH-ключами доступа
Для пользователя с ролью ssh_key_admin и в карточке ДЦ в разделе групповых действий с серверами появится возможность выбрать добавление SSH-ключа пользователя на сервера или удалить уже добавленные ключи пользователей.
Примечание
Для пользователя с ролью superadmin действия по добавлению и удалению пользовательских ключей разрешено выполнять только со своими ключами.

Рисунок 3.29 Добавление SSH-ключа пользователя на сервер