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

Установка и настройка модуля


Нажмите Интеграция → Модули → Установить для установки модуля.

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

Укажите:

  • Адрес сервера проксирования — IP-адрес сервера, который используется в качестве прокси;
  • Порт сервера проксирования — порт сервера, который используется в качестве прокси;
  • Имя администратора — логин администратора на сервере;
  • Тип авторизации на сервере проксирования — способ подключения к серверу:
    • По паролю — для авторизации используется пароль;
    • По ключу SSH — для авторизации используется SSH-ключ.
  • Пароль администратора — пароль root-пользователя на сервере, который используется в качестве прокси. Поле доступно только при выборе типа авторизации на сервере проксирования — "По паролю";
  • Открытый SSH-ключ — SSH-ключ для доступа к серверу, который используется в качестве прокси. Поле доступно только при выборе типа авторизации на сервере проксирования — "По ключу SSH";
  • Шифрование подключения noVNC к websockify — опция шифрования передаваемых данных (SSL) при установлении подключения noVNC к websockify. Рекомендуем, если работа с панелью управления осуществляется по протоколу SSL. По умолчанию включена;

    Обратите внимание!

    VNC-viewer недоступен, если опция отключена.

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

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


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

Обратите внимание!

Для корректной работы модуля в поле URL интерфейса не должна быть указана ссылка с доменным именем. Разрешено использовать только ссылки с IP-адресами. Например:

      http://1.1.1.1/login.asp
https://1.1.2.2/ipmi/login
http://1.1.2.3/
https://1.1.2.4

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

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

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


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

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

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

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

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

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

На сервере с 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 веб-интерфейса IPMI с ожиданием в 10 секунд. При недоступности выводится соответствующая ошибка.
  4. Если включена опция Монтирование ISO-образов:
    1. Формируется список доступных ISO-образов для пользователя, вызвавшего функцию.
    2. Каждый образ из списка монтируется как NFS-директория (если уже не был смонтирован ранее). NFS-директория доступна только для сервера проксирования.


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

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

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

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

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

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


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

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