Доступ к консоли ваших серверов из браузера

от автора

У вас есть ESXi (любой гипервизор) на котором запущены виртуальные серваки? Иногда бывает так, что нужен доступ к реальной консоли сервера и не всегда есть возможность использовать консоль vmware. Если решение вам интересно читаем дальше.

VNC


Прежде всего, на ESXi можно запустить виртуальную машину, которая будет доступна через VNC. Мы сразу же можем подключиться к виртуальной машине с помощью любого VNC-клиента. Но это не наш путь.

Давайте для начала изменим настройки виртуальной машины. Выбираем виртуальную машину -> Edit Settings -> Options -> General -> Configuration Parameters и добавляем 3 параметра:

RemoteDisplay.vnc.enabled = [true|false] - включаем vnc RemoteDisplay.vnc.port = [port #] - порт, на котором виртуальная машина будет доступна RemoteDisplay.vnc.password = [optional] - пароль к VNC 

Если вы используете ESXi 5 версии, то вам еще нужно будет открыть порт на фаерволе этого гипервизора. Сделать это не так легко, как кажется на первый взгляд. Включаем SSH и создаем новый xml файл, с описанием нового правила для фаервола в /etc/vmware/firewall:

<!--rewall configuration information for VNC --> <ConfigRoot> <service> <id>Habra</id> <rule id='0000'> <direction>inbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port>5901</port> </rule> <rule id='0001'> <direction>outbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port> <begin>0</begin> <end>65535</end> </port> </rule> <enabled>true</enabled> <required>false</required> </service> </ConfigRoot> 

После этого обновим конфиг фаервола и посмотрим, появился ли наш новый сервис:

/etc/vmware/firewall # esxcli network firewall refresh /etc/vmware/firewall # esxcli network firewall ruleset list | grep Habra Habra                  true 

Основная проблема в том, что если сейчас ESXi перезагрузить, то нашего нового правила не будет. Самое простое решение скопировать XML-ку на storage, к которому у хоста есть доступ, а на самом хосте добавить в /etc/rc.local:

cp location-of-xml-file /etc/vmware/firewall esxcli network firewall refresh 

Если вы хотите более правильное решение, то можно почитать тут.

Теперь ко всем нашим виртуальным машинам есть VNC доступ. Далее будем делать одну точку доступа ко всем серверам, используя Guacamole

Guacamole


С помощью Guacamole вы можете получить доступ к консоли своих серверов из любого браузера, который поддерживает: HTML5 и AJAX

Guacamole умеет работать с VNC и RDP. Установку можно производить на Debian, Ubuntu, Fedora

Установка Guacamole не составит большого труда. Примеры для Ubuntu. Установим зависимости:

sudo apt-get install tomcat6 libvncserver0 libfreerdp1 libvorbisenc2 

Последнюю версию можно найти на сайте продукта:

wget http://switch.dl.sourceforge.net/project/guacamole/current/binary/ubuntu-12.04-amd64/guacamole-0.7.2-ubuntu-12.04-amd64.tar.gz tar -xzf guacamole-0.7.2-ubuntu-12.04-amd64.tar.gz cd guacamole-0.7.2-ubuntu-12.04-amd64 sudo dpkg -i *.deb 

Если все сделали правильно, то зайдя на myip:8080/guacamole/ увидим окно ввода логина и пароля. Схема аутентификации по умолчанию читает все настройки из файла конфигурации /etc/guacamole/user-mapping.xml

<user-mapping>     <authorize username="User1" password="userpassword"> <connection name="Server1">             <protocol>vnc</protocol>             <param name="hostname">192.168.0.10</param>             <param name="port">5902</param>             <param name="password">VNCPASS</param>         </connection> <connection name="Server2">             <protocol>vnc</protocol>             <param name="hostname">192.168.0.10</param>             <param name="port">5901</param>             <param name="password">VNC</param>         </connection>     </authorize> </user-mapping> 

где hostname — это адрес вашего esxi хоста, password — пароль для VNC.
Теперь логинимся под пользователем User1 и подключаемся к вашим виртуальным серверам. Чтобы открыть виртуальную клавиатуру нажимаем: Ctrl+Alt+Shift

ссылка на оригинал статьи http://habrahabr.ru/post/170667/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *