Плагин WebShell

В облачной среде наиболее часто используемой операционной системой на сегодня является Unix или операционные системы на базе Linux. Для управления ими администраторы используют стандартный интерфейс SSH. Многие системные администраторы или пользователи облачной среды устанавливают на свои машины SSH-клиент.

Прежде всего, он более интерактивен, т.к. он позволяет выполнять операции copy&paste. При работе с текстом он наиболее эффективен.

В добавок к лимиту времени ожидания активности самого UI, плагин SSH также поддерживает лимит времени ожидания активности. Это позволяет спокойно отлучиться на чашечку кофе, оставив SSH открытым, в отличии от консоли VNC, которая всегда остается открытой.

Данный плагин не является обязательным, но зачастую он очень полезен, прост в установке и конфигурировании. Для его подключения необходимо развернуть docker-контейнер, который является автономным shell proxy контейнером и может использоваться и помимо CloudStack-UI, но может быть и интегрирован с ним. В этом случае просто укажите адрес WebShell при запуске контейнера UI. В любой момент плагин может быть выключен посредством изменения конфигураций UI.

Более подробно об установке и настройке плагина см. ниже.

Общая информация

WebShell - это расширение CloudStack-UI, созданное для выполнения безклиентного SSH подсоединения к виртуальной машине. Данное расширение подключается через настройки CloudStack-UI и поддерживается дополнительным docker-контейнером. В части использования WebShell схож с интерфейсом NoVNC от CloudStack. Однако, плагин использует протокол SSH, что делает невозможным аварийное управление ВМ.

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

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

Плагин WebShell позволяет решить эти проблемы:

  • он предоставляет высокую интерактивность, что особенно важно при работе с большим количеством текста;
  • позволяет скопировать и вставить текст из терминала;
  • позволяет задать период времени окончания сессии, что повышает безопасность системы;
  • блокирует доступ к ВМ при работе во внеполосном режиме.

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

В оригинальном CloudStack UI и API данная функциональность недоступна.

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

Инструкции по установке

Для запуска плагина WebShell CloudStack-UI необходимо:

  1. Запустить контейнер WebShell на backend’е.
  2. Подключить и настроить плагин WebShell в config.json.

Запуск WebShell Backend

Пожалуйста, изучите раздел в репозитории WebShell.

Настройка WebShell

Включите webShell в блоке extentions в файле конфигураций config.json:

"extensions": {
  ...,
  "webShell": true
}

webShell.address - адрес backend’a WebShell, необходим для доступа к WebShell.

Запуск cloudstack-ui c WebShell из контейнера

docker run -d -p 80:80 --name cloudstack-ui \
           ...
           -e WEBSHELL_PLUGIN_ENDPOINT=http://url/to/webshell-server \
           ...
           -v /path/to/config.json:/static/config/config.json \
           bwsw/cloudstack-ui