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

в 15:06, , рубрики: console, ESXi, vnc, виртуализация, ит-инфраструктура, системное администрирование, метки: , ,

У вас есть 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

Автор: essential55

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js