среда, 18 ноября 2009 г.

Удаленная работа с виртуальными машинами ESX/ESXi

Иногда возникает необходимость предоставить пользователю доступ к виртуальной машине, расположенной на сервере ESX/ESXi. Хотя консоль VMware Infrastructure/vSphere Client и справляется с данной задачей, но является достаточно громоздкой. В качестве альтернативных методов выступают VNC и Remote Console.

Для включения VNC клиента, отредактируйте файл .vmx виртуальной машины, добавив туда следующие строчки:
remotedisplay.vnc.enabled=”true”
remotedisplay.vnc.password = “<ПАРОЛЬ>
remotedisplay.vnc.port=”<ПОРТ>

, где <ПАРОЛЬ> - любой подходящий пароль, <ПОРТ> - порт, используемый для подключения.


В случае необходимости предоставления доступа к нескольким виртуальным машинам на одном сервере, просто поменяйте номер порта.

Теперь вы сможете подключаться с помощью VNC клиента (например, UltraVNC).


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

В качестве альтернативного варианта вы можете воспользоваться VMware Remote Console, входящей в состав VMware Player. Просто запустите из командной строки:
vmplayer -h <АДРЕС_ESX> <ПУТЬ_К_VMX>

Например так:
Обратите внимание на формат пути к .VMX файлу (после квадратных скобок должен быть пробел).

При подключении у вас запросят имя пользователя и пароль учетной записи ESX, у которой есть права на подключение:
 

Одно замечание - при попытке подключиться к ESXi 3.5 U4 с помощью Remote Console от Vmplayer 3.0, консоль закрывается без объяснения причин. В качестве решения, вы можете скачать модифицированную версию Remote Console от компании Minicom. С ESX 4.0 такой проблемы не наблюдается.

Update: если вы планируете подключаться с помощью Remote Console к ESX/ESXi версии 4.1 и выше, то вам требуется вручную создать на хосте учетную запись из-под которой производится подключение, так как доменная авторизация при интеграции с Active Directory не работает.

6 комментариев:

  1. А RDP уже не в моде?
    Работает быстро, перед подключением можно задать множество опций:

    mstsc /?

    ОтветитьУдалить
  2. Не всегда есть возможность подключиться к виртуальной машине по RDP, например, когда она находится в изолированной сети, или когда там не Windows.

    ОтветитьУдалить
  3. защитить паролем VNC подключение с помощью строчки remotedisplay.vnc.password = “ПАРОЛЬ” не получится, в ESX 3.5 данная строчка не работает!
    Для того чтобы использовать пароль при подключение по VNC к виртуальной машине нужно вместо строчки remotedisplay.vnc.password = “ПАРОЛЬ” использовать remotedisplay.vnc.key = "хеш_пароля"

    Теперь чтобы получить хеш_пароля можно воспользоваться, например VMware Workstation, где в Advanced свойствах, какой-нибудь тестовой виртуальной машины, включите опцию Remote Desktop и введите пароль, например: 1qaz@WSX

    Теперь откройте vmx файл этой виртуальной машины и вы там увидите строчку:
    remotedisplay.vnc.key = "JjgIBzs/EQU8KyUbGz4AFB0vBgASNRkuDTcUByYcExA7NSIZDA4JMBs+AgYdCwQ6Gi4yBis/GgA8DwAdIycsAiYPNgQ3JSQLJzERNDc0AwIvMRgYGTokHB08BjAdOQYJHhYJDC45Mwg2FwApLQciFSMaDyg9JxQgMzoRCDMuEyU="

    Далее всего лишь остается в vmx файл виртуальной машины esx сервера добавить следующие строчки (виртуальная машина должна быть соот-но выключена): remotedisplay.vnc.enabled = "true"
    remotedisplay.vnc.port = "5900"
    remotedisplay.vnc.key = "JjgIBzs/EQU8KyUbGz4AFB0vBgASNRkuDTcUByYcExA7NSIZDA4JMBs+AgYdCwQ6Gi4yBis/GgA8DwAdIycsAiYPNgQ3JSQLJzERNDc0AwIvMRgYGTokHB08BjAdOQYJHhYJDC45Mwg2FwApLQciFSMaDyg9JxQgMzoRCDMuEyU="

    Далее сделайте настройки фаервола ESX сервера, где выполните:
    esxcfg-firewall -e vncServer (это только, если вы используете порт 5900 - порт по умолчанию для VNC),

    или если вы например захотите использовать порт не по умолчанию, например: tcp7000, то введите следующие команды:
    esxcfg-firewall -o 7000,tcp,in,vnc
    esxcfg-firewall -o 7000,tcp,out,vnc

    После настроек esx фаервола не каких рестартов сервисов делать не нужно, настройки применятся сразу.


    Теперь к виртуальной машине ESX сервера, для которой вы делали настройки можно будет подключится с помощью VNC клиента, где перед входам надо будет ввести пароль 1qaz@WSX.


    Важно:

    Перед внесением изменений делайте резервноую копию vmx файла виртуальной машины, так как вы его будете изменять, например: cp vm.vmx vm.vmx.ORIG

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

    ОтветитьУдалить
  4. Roman, спасибо за полезный комментарий.

    ОтветитьУдалить
  5. Маленькая поправочка, когда вы настраиваете фаервол ESX сервера, где вводите команду:

    esxcfg-firewall -e vncServer вы фактически открываете входящие и исходящий трафик c TCP5900 до 5906 (те одной данной настройкой в фаерволе вы можете открыть доступ до 7 vnc консолей к разным вирт машинам esx сервера, где каждая ВМ со своим портом)

    Пс.
    Каждая открытая консоль к ВМ по vnc использует отдельную виртуальную консоль getty в linux системе (где обычно7 консоль это X-Window)

    ОтветитьУдалить
  6. Этот комментарий был удален автором.

    ОтветитьУдалить