В статье описаны принципы работы модуля "Проксирование 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.
Установка и настройка модуля
Нажмите Интеграция → Модули → Установить для установки модуля.
После установки кнопка Установить заменяется на кнопку Настроить .
Укажите:
- Адрес сервера проксирования — 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 выбран способ подключения с помощью проксирования через доп. сервер, в списке серверов в колонке Состояние по нажатию иконки осуществляется подключение к проксирующему серверу и получение картинки с веб-интерфейсом IPMI.
Порядок работы с IPMI при использовании проксирования через доп. сервер см. в разделе Инструкции по работе в веб-интерфейсах IPMI.
Принципы работы модуля
Прокси-сервер
На сервер для проксирования устанавливается VNC-сервер и ПО, необходимое для отображения веб-интерфейса IPMI и удалённой консоли.
На сервере с DCImanager запускается websockify-сервер для перенаправления трафика на VNC-сервер и обратно.
На сервере с DCImanager запускается noVNC, обращаясь локально к websockify и получая картинку с веб-интерфейсом IPMI в браузере через VNC-сервер.
Для упрощения ввода пароля и обмена другой текстовой информацией с веб-интерфейсом IPMI реализована передача буфера обмена через кнопки и текстовое поле в интерфейсе noVNC и разрешена клавиша Ctrl для использования внутри Java-консоли.
Активация проксирования
На сервере с DCImanager в межсетевом экране открывается входящий трафик на диапазон портов из конфигурационного файла (для noVNC).
На удалённом сервере проксирования:
- Устанавливается публичный ключ из <директория_панели_управления>/etc/.ssh/master_id.pub в ~/.ssh/authorized_keys выбранного администратора.
- Настраивается шаблонный пользователь (с именем dci_vnc_template и группой dci_vnc_users) для запуска VNC-сервера.
- Устанавливается необходимое ПО (устаревший chromium с поддержкой java-плагина, java, tigervnc-server, chromium актуальной версии) и его зависимости.
- Создаётся файл исключений для java.
- Устанавливается java-plugin для браузера. Нужен при открытии Java-апплета для некоторых IPMI, например, HP iLo 4.
- Настраивается корректное открытие jnlp-файлов через javaws.
- В межсетевом экране открывается входящий трафик на диапазон портов для VNC-сервера.
Подключение к IPMI
На сервере с DCImanager:
- Проверяется порт noVNC на несовпадение с одним из запрещённых браузерами портом: 6000, 6665–6669, 6697.
- Проверяются и при необходимости исправляются правила межсетевого экрана. Пропускается входящий трафик на диапазон портов из конфигурационного файла, если порты для noVNC были изменены в настройках.
- Проверяется доступность URL веб-интерфейса IPMI с ожиданием в 10 секунд. При недоступности выводится соответствующая ошибка.
- Если включена опция Монтирование ISO-образов:
- Формируется список доступных ISO-образов для пользователя, вызвавшего функцию.
- Каждый образ из списка монтируется как NFS-директория (если уже не был смонтирован ранее). NFS-директория доступна только для сервера проксирования.
На удалённом сервере проксирования:
- Из шаблонного пользователя создаётся временный пользователь и в его стартовый скрипт прописывается ссылка на IPMI.
- Ссылки на IPMI добавляются в список исключений для Java (оригинальная и ссылка с https).
- Проверяются и при необходимости исправляются правила межсетевого экрана. Пропускается входящий трафик на диапазон портов из конфигурационного файла, если порты для noVNC были изменены в настройках.
- Если включена опция Монтирование ISO-образов, каждый образ из списка доступных монтируется внутрь домашней директории временного пользователя в поддиректорию ISO.
- Проверяется тип IPMI:
- Если включена опция Поддержка старых типов, то браузер будет запущен с поддержкой java-плагина (необходимо устройствам HP iLo 100/160).
- Иначе запустится актуальная версия браузера, подходящая для большинства IPMI.
- От пользователя запускается VNC-сервер, в котором по стартовому скрипту запускается браузер с ограниченными возможностями. В браузере открывается веб-интерфейс IPMI.
- На сервере с DCImanager запускается websockify прокси, который ожидает подключений на первом свободном порту из диапазона и перенаправляет их на VNC-сервер.
- В новой вкладке открывается noVNC, подключённый к websockify.
Закрытие вкладки или открытие новой вкладки с тем же IPMI:
- Websockify завершается.
- Процессы временного пользователя завершаются.
- Если включена опция Монтирование ISO-образов:
- Размонтируются директории с ISO-образами.
- Если счётчик использования директории уменьшился до нуля, размонтируется NFS-директория на сервере с DCImanager.
- При необходимости удаляются lock-файлы пользователя.
- Удаляется временный пользователь и его домашняя директория.
Изменение адреса сервера проксирования
- Попытка подключения к старому серверу проксирования по SSH.
- Попытка восстановления правил межсетевого экрана в исходное состояние на старом сервере.
- Попытка удаления публичного ключа <директория_панели_управления>/etc/.ssh/master_id.pub из ~/.ssh/authorized_keys старого сервера.
- Включение проксирования на новом сервере.
Работа модуля в локациях
При использовании модуля в локациях DCImanager подключается к IPMI серверов в локациях через сервер проксирования. Убедитесь, что сервер проксирования доступен как со стороны DCImanager, так и со стороны серверов в локации. Подробнее о локациях см. в статье Локации.