3. Настройка подключений к инфраструктуре

Физическая установка Услуг может производиться на физические сервера, виртуальные машины и в среду K8s. При этом компоненты Услуг могут быть распределены произвольно в по разным физическим ресурсам и сетям, в зависимости от задач конфигурации Услуги.

Для настройки и установки компонентов Услуг, требуется обеспечить физическое подключение Datamart Platform Studio по SSH к ресурсам датацентров и/или среды K8s.

Для создания и настройки инфраструктуры может использоваться интеграция Datamart Platform Studio с различными платформами виртуализации (гипервизорами). Функции, доступные при интеграции с гипервизорами описаны в Раздел 4 Интеграция с гипервизорами (платформами виртуализации).

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.5).

Примечание

Разрешение на загрузку специфических приватных ключей для ДЦ и для серверов регулируется в .env файле настроек Datamart Platform Studio. По умолчанию - ОТКЛЮЧЕНО.

При добавлении нового приватного ключа будет автоматически сгенерирован новый публичный ключ и добавлен на сервера, подключенные в ДЦ по ключу. Старый публичный ssh-ключ на серверах будет удален.

Примечание

Новый приватный ключ может быть добавлен вручную, либо его можно сгенерировать автоматически. Это удобно при передаче услуг с ДЦ из Студии в Студию, когда необходимо гарантировать блокировку доступа к серверам ДЦ из старой Студии.

Настройки SSH для ДЦ

Рисунок 3.5 Настройки SSH для ДЦ

3.1.5. Отображение количества используемых ресурсов и лимитов ДЦ

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

Счётчик ресурсов ДЦ

Рисунок 3.6 Счётчик ресурсов ДЦ

Примечание

В текущей версии Datamart Platform Studio счетчик ресурсов работает в режиме предупреждения и не блокирует добавление ресурсов к ДЦ при превышении лимита.

3.2. Добавление серверов в ДЦ, настройка доступа

Для инсталляции приложений необходимо добавить аккаунты серверов, на которых будет производиться установка. Аккаунт сервера содержит информацию об IP-адресе, хосте, FQDN, наименовании и характеристиках сервера.

В разделе интерфейса программы «Серверы», необходимо выбрать ДЦ, сервер которого мы планируем добавить и нажать кнопку «Добавить сервер» (см. Рисунок 3.7).

Список серверов ДЦ

Рисунок 3.7 Список серверов ДЦ

При добавлении сервера, фактически происходит регистрация записи о сервере. В карточке необходимо обязательно указать имя хоста, ip-адрес и FQDN добавляемого сервера (см. Рисунок 3.8). В случае отсутствия FQDN для подключения к серверу будет использоваться его ip-адрес.

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

При добавлении сервера с SSH доступом по нестандартному порту, смените значение порта (по умолчанию для доступа по SSH используется порт 22).

Интерфейс добавления сервера

Рисунок 3.8 Интерфейс добавления сервера

Флаг «Управляемый сервер» означает, что Datamart Platform Studio разрешено использовать подключение по ssh и Ansible-плейбуки для сбора фактов и установки ПО на данный сервер. Флаг включен по умолчанию.

Флаг «Назначить IP автоматически» используется, если на момент создания аккаунта сервера, администратору заранее неизвестен ip-адрес, который будет назначен при последующем создании ВМ в гипервизоре и внесён в данное поле автоматически после синхронизации.

3.2.1. Настройки подключения

Подключение Datamart Platform Studio к серверу по SSH по умолчанию происходит по FQDN. Если не указан FQDN, то подключение будет происходить по ip-адресу.

Примечание

В случае отсутствия записей DNS для сервера может потребоваться организовать подключение по hostname. В этом случае потребуется внесение hostname серверов в файл /etc/hosts и указание hostname сервера в поле FQDN.

Примечание

При установке услуги типа «Витрин данных НСУД», необходимо обеспечить видимость всех добавляемых серверов витрины по hostname в файле /etc/hosts для каждого сервера витрины. Это требуется для корректного обнаружения серверов по имени при связи приложений Витрин данных друг с другом.

В карточке сервера в разделе Настройки подключения администратор может указать маршрут, который будет использоваться для доступа к серверу (см.: Раздел 5 Настройка маршрутов SSH и доступ к сетям).

Примечание

Имя пользователя, пароль и ключ доступа к серверу по умолчанию используется из настроек ДЦ. Если требуется использовать специфические данные для сервера, их можно указать в разделе Настройки подключения.

3.2.2. Настройки связанной ВМ в гипервизоре

При создании аккаунта сервера в ДЦ, связанном с гипервизором, для сервера есть возможность указать параметры ВМ, которые будут использованы при создании соответствующей ВМ (см. Рисунок 3.9):

  • количество ядер;

  • размер оперативной памяти (Мб);

  • объем основного диска VDA (Гб);

  • объем дополнительного диска VDB (Гб);

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

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

Дополнительный диск VDB при создании ВМ будет автоматически подмонтирован в папку /opt.

Настройки связанной ВМ в гипервизоре

Рисунок 3.9 Настройки связанной ВМ в гипервизоре

Примечание

После создания соответствующей ВМ в гипервизоре и синхронизации в поле ID ВМ Гипервизора будет занесен идентификатор ВМ, соответствующей данному аккаунту сервера в Datamart Platform Studio.

3.2.3. Добавление серверов списком

Если необходимо добавить не один сервер, а сразу группу серверов в ДЦ, то можно добавить сервера списком, нажав Добавить список (см. Рисунок 3.10).

Каждая новая запись сервера на новой строке.

Список параметров добавляемого сервера указывается в следующем порядке:

  • <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.10 Добавление списка серверов

3.2.4. Установка ssh-ключа для доступа Datamart Platform Studio к серверам

Для осуществления подключений Ansible к серверам, на которых будут устанавливаться компоненты услуг, используются ssh-ключи и конфигурации в файлах ssh.config в папке dms-dirs/dms-data_centers/<имя_ДЦ>/ для каждого ДЦ, соответственно.

Публичный ключ на сервер можно добавить из интерфейса Datamart Platform Studio или вручную в консоли сервера.

Имя пользователя и пароль по умолчанию, которые будут использоваться для доступа к серверам каждого отдельного ДЦ, указываются в настройках Датацентра в поле Имя пользователя и Пароль.

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

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

Примечание

Разрешение на загрузку специфических приватных ключей для ДЦ и для серверов регулируется в .env файле настроек Datamart Platform Studio. По умолчанию - ОТКЛЮЧЕНО.

Особенности конфигурации доступа к локальному серверу, если предполагается установка приложений услуги на том же сервере, на котором установлена Datamart Platform Studio описаны в разделе: Раздел 3.2.4.3 Особенности настройки ip-адреса в ssh.config для localhost (127.0.0.1).

3.2.4.1. Добавление ssh-ключа на сервер при помощи интерфейса Datamart Platform Studio

Для добавления ключа прямо из интерфейса Datamart Platform Studio требуется знать логин и пароль соответствующего пользователя (от имени которого должны выполняться Ansible-команды). Для сервера, на который таким образом добавляется ключ, должен быть разрешен доступ по логину и паролю. По умолчанию для доступа к серверам в одном ДЦ используется единый логин и пароль, установленный в настройках ДЦ, но в настройках сервера можно его изменить и использовать для сервера специфический логин, если это требуется.

Настройка логина доступа к серверу

Рисунок 3.11 Настройка логина доступа к серверу

В списке серверов, после добавления нового сервера, можно нажать на значок SSH и добавить ключ на сервер, введя соответствующий логин и пароль пользователя, для которого будет добавляться ключ. (см: Рисунок 3.12). По умолчанию используется логин из настроек ДЦ.

Добавление ssh-ключа на сервер по паролю

Рисунок 3.12 Добавление ssh-ключа на сервер по паролю

После успешного добавления ключа (если сервер в доступе и логин/пароль введены верно), произойдет автоматическая загрузка фактов с сервера и сервер перейдет в категорию доступных к работе (значок голубого цвета).

Предупреждение

После успешного добавления ssh-ключа доступ по паролю к серверу требуется отключить. Дальнейшее взаимодействие будет осуществляться только по ключу. Если требуется сохранить доступ по паролю, необходимо при добавлении ключа отключить опцию «Закрыть доступ по паролю» (включена по умолчанию).

Проверку и дальнейшее отключение доступа по паролю после добавления ssh-ключа можно выполнить из меню управления сервером или в разделе групповых действий с серверами.

3.2.4.2. Добавление ssh-ключа вручную

Ключ требуется добавить для соответствующего пользователя в файл /home/<username>/.ssh/authorized_keys.

Для добавления вручную необходимо выполнить следующие операции:

Примечание

Запуск Ansible-скриптов на серверах будет производиться от имени выделенного пользователя. Соответственно, все действия по добавлению SSH-ключа необходимо производить в каталог данного пользователя.

  1. создайте каталог для ключей, если такого еще нет, выполнив команду:

sudo mkdir /home/<username>/.ssh
sudo touch /home/<username>/.ssh/authorized_keys
  1. установите права, выполнив команду:

sudo chmod 700 /home/<username>/.ssh
sudo chmod 600 /home/<username>/.ssh/authorized_keys
  1. скопируйте ключ на сервер:

В общем случае, для каждого сервера в ДЦ сгенерирован ключ, с использованием которого происходит установка приложений. Этот ключ можно скопировать в карточке сервера (см. Рисунок 3.13) и добавить в соответствующий файл authorized_keys на выбранном сервере.

Копируем SSH ключ для добавления на сервер

Рисунок 3.13 Копируем SSH ключ для добавления на сервер.

3.2.4.3. Особенности настройки 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.2.4.4. Проверка доступа к серверу по паролю

Для того, чтобы убедиться в том, что доступ к серверу по паролю отключен и остался доступ только по ключу можно воспользоваться пунктом меню управления сервером «Проверить доступ по паролю» (см: Рисунок 3.14). После добавления ключа на сервер, доступ на сервер по паролю должен быть автоматически закрыт. Сбор фактов и остальные операции с серверами ДЦ будут осуществляться только с помощью закрытых ключей.

Проверить доступ на сервер по паролю

Рисунок 3.14 Проверить доступ на сервер по паролю

3.2.5. Проверка доступа к серверу, сбор фактов

Для того, чтобы убедиться, что сервер добавлен корректно и Datamart Platform Studio может установить с ним связь по ssh, в списке серверов есть опция загрузки фактов в колонке Обновить напротив каждого сервера находится кнопка проверки соединения и загрузки фактических данных (фактов) с сервера.

В случае успешного соединения с сервером и сбора фактов, значок будет голубого цвета. Для этого необходимо, чтобы Datamart Platform Studio имела доступ к серверу (напрямую или через шлюз) и на сервере должен быть установлен соответствующий SSH-ключ для пользователя, которым производится Ansible-подключение.

Примечание

Настройка доступа к закрытым контурам сетей ДЦ или серверов через шлюз или VPN описана в разделе Настройка маршрутов SSH и доступ к сетям.

В случае, если с сервером соединиться удалось, но обнаружен рассинхрон в IP, hostname или FQDN сервера, то значок будет гореть жёлтым цветом и во всплывающей подсказке и в карточке сервера будет указан тип ошибки, например:

Предупреждение об ошибке конфигурации сервера

Рисунок 3.15 Предупреждение об ошибке конфигурации сервера

В случае, если на сервер не был добавлен ssh-ключ и сбор фактов осуществить невозможно, то значок предупреждения будет отображен красным цветом и в строке сервера будет ссылка на ssh-ключ, который необходимо добавить на сервер.

Если ключ добавлен на сервер, но в данный момент соединение установить невозможно, то значок предупреждения будет отображен красным цветом. Ошибку соединения можно посмотреть в логах сервера.

Примечание

Пока ssh-ключ не добавлен на сервер, инсталляции приложений и сбор фактов произвести не удастся.

3.2.6. Пакетная загрузка ssh-ключа ДЦ на группу серверов

При добавлении группы серверов в ДЦ есть возможность пакетной загрузки ключей сразу на группу серверов. Для этого в списке серверов ДЦ необходимо нажать на кнопку групповой операции «SSH» (см. Рисунок 3.16). При этом будет произведена загрузка ключей на все те сервера ДЦ, куда ключ еще не был добавлен.

Примечание

Для пакетного добавления ключей требуется, чтобы для данной группы серверов был включен доступ по паролю.

Пакетная загрузка ssh-ключа на сервера ДЦ

Рисунок 3.16 Пакетная загрузка ssh-ключа на сервера ДЦ

Примечание

При включении опции «Обновить ключ принудительно», он будет обновлен и на тех серверах, куда уже был добавлен. Такое действие может потребоваться в случае смены приватного и, соответственно, публичного ssh-ключа для ДЦ.

Еще одним вариантом пакетной загрузки ssh-ключей на сервера является выбор в общем списке серверов целевых для загрузки ключей серверов и выбор группового действия в меню групповых действий «Сменить доступ по паролю на доступ по SSH-ключу» (см. Рисунок 3.17).

При этом на сервера будет загружен ssh-ключ и режим доступа по паролю для серверов будет автоматически отключен командой из Datamart Platform Studio.

Смена доступ по паролю на доступ по SSH-ключу

Рисунок 3.17 Смена доступа по паролю на доступ по SSH-ключу

3.2.7. Замена ssh-ключа для ДЦ и переход на резервный ключ

Если для серверов требуется по соображениям безопасности сменить ключ, либо указать свой специфический приватный ключ, то в настройках SSH для ДЦ можно выполнить эти действия (см. Рисунок 3.18).

При возникновении ситуации компрометации ключа, основной ключ будет удален администратором и доступ к серверам, соответственно, автоматически заблокирован. Для разрешения данной ситуации в Datamart Platform Studio предусмотрен механизм перехода на резервный ключ:

Операции с SSH-ключами в ДЦ

Рисунок 3.18 Операции с SSH-ключами в ДЦ

3.2.8. Настройка 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.3. Пользовательские ssh-ключи

Для пользователя с ролью superadmin в меню пользователя Программы есть возможность зарегистрировать один или несколько собственных публичных ssh-ключей и далее добавить эти публичные ключи на выбранные сервера ДЦ.

При добавлении собственных ключей, superadmin получает возможность подключаться по протоколу SSH к серверу, на который был добавлен ключ его ssh-клиента.

Примечание

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

Последовательность действий, в общем случае, следующая:

  1. Superadmin в своём ssh-клиенте (например PuTTY) генерирует пару ключей (Private + Public);

  2. Superadmin в Datamart Platform Studio регистрирует собственный Public ssh-ключ;

  3. Superadmin загружает средствами Datamart Platform Studio свой Public ssh-ключ на любой доступный из Студии сервер (или группу серверов ДЦ);

Проверить индикацию того, что соответствующий Public ssh-ключ загружен на сервер можно в списке ключей сервера (в меню управления сервера).

В результате у superadmin появляется возможность подключения к серверу ssh-клиентом (у которого установлен Private ssh-ключ, соответствующий загруженному на сервер Public ssh-ключу).

Добавление публичного ssh-ключа пользователя

Рисунок 3.19 Добавление публичного ssh-ключа пользователя

3.3.1. Добавление публичного ssh-ключа пользователя на сервер

Для пользователя с ролью superadmin в карточке ДЦ в разделе групповых действий с серверами появится возможность выбрать добавление ssh-ключа пользователя на сервера или удалить уже добавленные ключи.

Примечание

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

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

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

3.4. Подключение к среде K8s (Kubernetes)

Для подключения Услуги к среде K8s в настройках Услуги необходимо добавить конфигурационный файл, предоставленный администратором K8s:

Настройка подключения к K8s

Рисунок 3.21 Настройка подключения к K8s

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

В этом случае пользователь Datamart Platform Studio сможет производить добавление инсталляций приложений в среду K8s, к которой настроен доступ в файле конфигурации. Проверка подключения производится в карточке услуги (см. Рисунок 3.22)

Проверка подключения к K8s

Рисунок 3.22 Проверка подключения к K8s