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


    У вас есть 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
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 10

      +2
      Месье знает толк в велосипедах!
      А куда делась «возможность использовать консоль vmware»? К чему все эти прыжки в ширину?
        0
        Вам тут нужно открыть во вне 8080 порт и заходить когда нужно. В случае же vmware нужно чтобы были открыты 902 и 903 к каждому хосту. Нужен vSphere Client или же Web management, который тоже не всегда пробрасывают во вне. Ну и не у всех есть vCenter. Нарезать права проще, например нужен человеку чисто доступ к консоли сервака.
          0
          VMware Remote Console SDK смотрели?
            0
            И?
            Архитектура VMRC.

            Решение простое как барабан, когда нужно здесь и сейчас. И совершенно не претендует на решение enterprise уровня.
              0
              Имеею подозрение, что вам было вполне достаточно нативного vmware-vmrc. Даже без vCenter.
              Здесь еще неплохо думать о тех, кому в этот барабан после вас стучать.
                0
                Здесь частный случай. Усложним вам задачу добавим: KVM, XEN. И запретим установку плагинов.
        0
        Прочел заголовок и надеялся прочитать что-то близкое мне а именно доступ к консоли из браузера.
        Может лучше изменить тему назвать «Доступ к рабочему столу из браузера»? При чем здесь консоль?
        Когда я искал по этой теме, то нашел единственное устроившее меня работающее решение anyterm. Все остальное за моим прокси на работе просто не работает.
          0
          в ESXi 5.1 как раз в основном используется веб для доступа — в обычной консоли будут «урезаны» функции.

          В статье акцент на ESXi 5.0 — а ведь уже не за горами (а на следующем VMWorld) анонс ESXi 5.2
            0
            Напрямую к хостам ESXi с помощью Web Client всё ещё не возможно подключиться. Только к vCenter Server
            0
            я могу зайти в BIOS или могу увидеть экран смерти этих «рабочих столов» что это как не консоль? Другое дело, что понятие консоль растяжимое.

          Only users with full accounts can post comments. Log in, please.