Pull to refresh

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

Reading time3 min
Views62K

У вас есть 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
Tags:
Hubs:
Total votes 17: ↑10 and ↓7+3
Comments10

Articles