Модуль "Проксирование IPMI через доп. сервер"

Материал из ISPWiki
Перейти к: навигация, поиск
Иерархия: DCImanager -> Модули
DCImanager Enterprise -> Модули

В данной статье описаны принципы работы модуля "Проксирование IPMI через доп. сервер" и алгоритм его установки.

Модуль "Проксирование IPMI через доп. сервер" позволяет владельцам серверов с IPMI, имеющими внутренние IP-адреса, получить доступ к web-интерфейсам IPMI. Доступ осуществляется через подключение VNC-клиента к выбранному серверу с CentOS 7. На сервере разворачивается среда для открытия урезанной версии браузера со страницей web-интерфейса IPMI.

Работа модуля протестирована на следующих видах IPMI:

   SuperMicro (FW: 01.11);
   HP iLO 4 ProLiant (FW: 2.50);
   HP iLO 3 ProLiant (FW: 1.88);
   HP LO 100 (FW: 4.23);
   Huawei iBMC (FW: U25 2.30);
   Intel BMC (FW: 01.21.6038);
   Dell IDRAC 8 Power Edge R430 (FW: 2.41.40.40, Date:14.05.2017);
   SuperMicro (FW: 03.45, Date: 09/19/2016).

Подробнее об IPMI описано в статье документации "IPMI".

Подготовка прокси-сервера

Для использования модуля необходим сервер под управлением CentOS 7. Данный сервер должен иметь доступ к внутренней сети, в которой расположен IPMI. Рекомендуется установка ПО для проксирования на отдельный (виртуальный или выделенный) сервер. Сервер может иметь как публичный, так и приватный IP-адрес, но необходимо, чтобы он был доступен с сервера с DCImanager.

Прокси можно установить на сервер с DCImanager однако это не рекомендуется. При проксировании используется стороннее ПО и возрастает риск получения несанкционированного доступа к целевому серверу. Также проксирование создает нагрузку на сервер, замедляя работу DCImanager.

Установка и настройка модуля "Проксирование IPMI через доп. сервер"

Установка модуля осуществляется в разделе "Интеграция" → "Модули" → выделить модуль "Проксирование IPMI через доп. сервер" → кнопка "Установить".

После установки кнопка "Установить" заменяется на кнопку "Настроить".

Проксирование IPMI через доп. сервер

Необходимо указать следующие данные:

  • Адрес сервера проксирования — IP-адрес сервера, который используется в качестве прокси;
  • Порт сервера проксирования — порт сервера, который используется в качестве прокси;
  • Имя администратора — логин администратора на сервере;
  • Тип авторизации на сервере проксирования — способ подключения к серверу;
  • Пароль администратора / Открытый SSH-ключ — данные для подключения в зависимости от выбранного способа подключения:
    • По паролю — для авторизации используется пароль;
    • По ключу SSH — для авторизации используется SSH-ключ.
  • Шифрование подключения noVNC к websockify — опция включает шифрование передаваемых данных (SSL) при установлении подключения noVNC к websockify. Рекомендуется, если работа с панелью управления осуществляется по протоколу SSL;
  • Монтирование ISO-образов — опция включает монтирование всех доступных пользователю ISO-образов на сервере проксирования в директорию пользователя. Опция позволяет монтирование ISO-образов на целевой сервер через web-интерфейс IPMI или Java-консоль. Администратору доступны все образы. Владельцу сервера доступны образы, загруженные им и общедоступные образы, загруженные администраторами;
  • IP-адрес сервера DCImanager — адрес сервера, на котором установлена панель управления;
  • Запрашивать у администратора способ подключения — опция включает запрос способа подключения из доступных при каждом подключении к web-интерфейсу IPMI;
  • Согласен с условиями использования Java от Oracle (c) — подтверждение согласия с лицензионным соглашением Java.

Использование модуля

Включение проксирования IPMI через доп. сервер осуществляется при создании нового подключения IPMI либо при изменении уже существующего. Обратите внимание на поле "Способы подключения".

Подробнее о создании подключения IPMI описано в статье документации "IPMI".

После установки и настройки модуля, если для IPMI выбран способ подключения с помощью проксирования через доп. сервер, в списке серверов в колонке "Состояние" по нажатию иконки P-ipmi.png осуществляется подключение к проксирующему серверу и получение картинки с веб-интерфейсом IPMI.

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

  1. Инструкция по работе в WEB-интерфейсе IPMI Hewlett-Packard Lights Out 100 (iLo100) внутри noVNC;
  2. Инструкция по работе в WEB-интерфейсе IPMI Intel BMC внутри noVNC;
  3. Инструкция по работе в WEB-интерфейсе IPMI SuperMicro 2012 внутри noVNC;
  4. Инструкция по работе в WEB-интерфейсе IPMI SuperMicro 2016 внутри noVNC.

Принципы работы модуля

Прокси-сервер

На сервер для проксирования устанавливается VNC-сервер и ПО, необходимое для отображения web-интерфейса IPMI и удаленной консоли.

На сервере с DCImanager запускается websockify-сервер для перенаправления трафика на VNC-сервер и обратно.

На сервере с DCImanager запускается noVNC, обращаясь локально к websockify и получая картинку с web-интерфейсом IPMI в браузере через VNC-сервер.

Для упрощения ввода пароля и обмена другой текстовой информацией с web-интерфейсом IPMI реализована передача буфера обмена через кнопки и текстовое поле в интерфейсе noVNC и разрешена клавиша Ctrl для использования внутри Java-консоли.

С версии 155 добавлена возможность перемещения окон и переключения между окнами внутри VNC. Для развёртывания свёрнутого окна используется комбинация клавиш Shift + TAB.

Активация проксирования

На сервере с DCImanager в межсетевом экране открывается входящий трафик на диапазон портов из конфигурационного файла (для noVNC).

На удаленном сервере проксирования:

  1. устанавливается публичный ключ из <директория_панели_управления>/etc/.ssh/master_id.pub в ~/.ssh/authorized_keys выбранного администратора;
  2. настраивается шаблонный пользователь (с именем dci_vnc_template и группой dci_vnc_users) для запуска VNC-сервера;
  3. устанавливается необходимое ПО (устаревший chromium с поддержкой java-плагина, java, tigervnc-server, chromium актуальной версии) и его зависимости;
  4. создается файл исключений для java;
  5. устанавливается java-plugin для браузера. Необходим для открытия Java-апплета для некоторых IPMI, например, для HP iLo 4);
  6. настраивается корректное открытие jnlp-файлов через javaws;
  7. в межсетевом экране открывается входящий трафик на диапазон портов для VNC-сервера;

Подключение к IPMI

На сервере с DCImanager:

  1. проверяется порт noVNC на несовпадение с одним из запрещенных браузерами портом: 6000, 6665–6669, 6697;
  2. проверяются и при необходимости исправляются правила межсетевого экрана. Пропускается входящий трафик на диапазон портов из конфигурационного файла, если порты для noVNC были изменены в настройках;
  3. проверяется доступность URL web-интерфейса IPMI с ожиданием в 10 секунд. При недоступности выводится ошибка о недоступности ссылки;
  4. если включена опция "Монтирование ISO-образов":
    • формируется список доступных ISO-образов для пользователя, вызвавшего функцию;
    • каждый образ из списка монтируется как NFS-директория (если уже не был смонтирован ранее). NFS-директория доступна только для сервера проксирования.


На удаленном сервере проксирования:

  1. из шаблонного пользователя создается временный пользователь и в его стартовый скрипт прописывается ссылка на IPMI;
  2. ссылки на IPMI добавляются в список исключений для Java (оригинальная и ссылка с https);
  3. проверяются и при необходимости исправляются правила межсетевого экрана. Пропускается входящий трафик на диапазон портов из конфигурационного файла, если порты для noVNC были изменены в настройках;
  4. если включена опция "Монтирование ISO-образов", каждый образ из списка доступных монтируется внутрь домашней директории временного пользователя в поддиректорию ISO;
  5. проверяется тип IPMI:
    • если включена опция "Поддержка старых типов", то браузер будет запущен с поддержкой java-плагина (необходимо устройствам HP iLo 100/160);
    • иначе запустится актуальная версия браузера, подходящая для большинства IPMI.
  6. от пользователя запускается VNC-сервер, в котором по стартовому скрипту запускается браузер с ограниченными возможностями. В браузере открывается web-интерфейс IPMI;
  7. на сервере с DCImanager запускается websockify прокси, который ждет подключений на первом свободном порту из диапазона и перенаправляет их на VNC-сервер;
  8. в новой вкладке открывается noVNC, подключенный к websockify.

Закрытие вкладки (или открытие новой вкладки с тем же IPMI)

  1. websockify завершается;
  2. процессы временного пользователя завершаются;
  3. если включена опция "Монтирование ISO-образов":
    • размонтируются директории с ISO-образами;
    • если счетчик использования директории уменьшился до нуля, размонтируется NFS-директория на сервере с DCImanager;
  4. при необходимости удаляются lock-файлы пользователя;
  5. удаляется временный пользователь и его домашняя директория.

Изменение адреса сервера проксирования

  1. попытка подключения к старому серверу проксирования по SSH;
  2. попытка восстановления правил межсетевого экрана в исходное состояние на старом сервере;
  3. попытка удаления публичного ключа <директория_панели_управления>/etc/.ssh/master_id.pub из ~/.ssh/authorized_keys старого сервера;
  4. включение проксирования на новом сервере.

Работа модуля в локациях

При работе модуля в локациях осуществляется попытка подключиться к IPMI серверов в локациях через основной сервер с DCImanager и указанный сервер проксирования.