VirtualBox без X сервера (Headless mode) & phpVirtualBox

В этой заметке я хочу рассказать о развертывании системы виртуализации на базе Ubuntu 10.10 Server + VirtualBox + phpVirtualBox. Думаю, вы в курсе, что это такое и с чем его едят. Преимущества и недостатки VirtualBox, как системы виртуализации, я оставлю за рамками этой статьи.Наша задача: развернуть инфраструктуру виртуализации на хост-машине без графического интерфейса (X-сервера). В начале имеем установленную Ubuntu 10.10 Server со всеми обновлёнными пакетами (sudo apt-get update & sudo apt-get upgrade). Ставить будем версию 3.2.12 VirtualBox. Я знаю, что уже доступна 4 версия, однако phpvirtualbox-0.5 с ней работать не будет. На сайте проекта уже есть Issue на этй тему, однако авторы похоже уже ушли на каникулы 🙂

Right now phpVirtualBox is incompatible with VirtualBox 4.0. I hope to have this fixed right after the Christmas holiday weekend.

Установка VirtualBox

На сайте VirtualBox можно найти нужную нам  версию. Качаем её, ставим dkms драйвер и саму virtualbox:

Отлично, система установлена. Теперь очередь за phpvirtualbox. Скачиваем phpvirtualbox-0.5.zip и распаковываем. Папку phpvirtualbox-0.5 перемещаем в директорию web-сервера (у меня – /var/www/phpvirtualbox)
Редактируем файл config.php Вписываем в строки вместо ian и pass

свои логин и пароль к учетной записи на Ubuntu. Скачиваем vboxwebsrv и делаем файл исполняемым. Перемещаем в /etc/init.d У меня веб-сервер работает на php5-fpm + nginx, поэтому приведу вам конфиг для него:

Теперь на локальной машине (откуда будем коннектиться) прописываем запись в /etc/hosts для хост-машины с виртуалками (192.168.0.17)

Запускаем:

В броузере топаем по адресу: vm.com и у нас открывается такой же интерфейс, как и у десктопной версии!

UP. Установка в Ubuntu 11.10

Прежде всего стоит отметить, что теперь для адекватной работы RPD нужно установить VirtualBox 4.1.10 Oracle VM VirtualBox Extension Pack.

Скачиваем его отсюда:

wget http://download.virtualbox.org/virtualbox/4.1.10/Oracle_VM_VirtualBox_Extension_Pack-4.1.10-76795.vbox-extpack

Затем надо от root запустить установку расширений:

# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.10-76795.vbox-extpack

После установки перезаружаем машину, и в phpvirtualbox в закладке display появится вкладка RDP, после чего можно будет коннектиться к виртуалке.

См. раз, два, три.

Установка виртуальных машин

В качестве эксперимента попробуем поставить Ubuntu 10.10 Desktop на виртуальную машину. Работа с phpVirtualBox аналогична десктопной версии.
Переходим на страницу, что настроили в Apache:

Cоздаём новую машину:

Вводим название и выбираем устанавливаемую ОС:

Выбираем объём оперативной памяти:

Выбираем существующий диск или создаём новый:

Выбираем тип жесткого диска, фиксированный размер или динамичиски
увеличивающийся до определённого размера:

Задаём размер нашего диска:

Просматриваем суммарную информацию по выбранной конфигурации:

В списке виртуальных компьютеров выбираем наш компьютер и запускаем его:

В настройках виртуалки не забываем включить RDP. По умолчанию он будет открыт на 3389 порту. В качестве CD-ROM монтируем ISO образ с Ubuntu.

Установка виртуальной ОС

После нажатия на кнопку Start в phpVirtualBox машина начнет загружаться. Но, т.к. клиент у нас не десктопный мы этого не увидим. Для того, чтобы подконнектиться к виртуальке по rdp ставим клиента на машину, откуда будем коннектиться.

Потом запускаем его и коннектимся на 3389 порт ХОСТ-МАШИНЫ. Я поначалу коннектился к виртуалке, а там порт был закрыт. Отлично, теперь мы видим графический установщик убунты. Но в окне у нас почему-то два курсора. Дальше я напишу, как исправить это баг, но установку придется производить с двумя курсорами. После установки виртуалки выключаем машину. Тут была ещё одна странность, машина не выключалась сама, пришлось выключить её через веб-морду. Дальше идем в веб-мордду и там отмонтируем ISO образ от машины и монтируем вместо него образ /usr/share/virtualbox/VBoxGuestAdditions.iso

Загружаем машину, на рабочем столе видим CD-ROM, правой кнопкой кликаем по нему, выбираем autorun. Ставятся Guest Additions, нажимаем Enter в консоле, когда попросят и перезагружаем машину. После этого  будет один курсор и нормальный графический режим (не забудьте выставить его и в RDP-клиенте). Ну вот, отлично, теперь имеем виртуалку,  и при этом мы не устанавливали тяжелые Xы на хост-машине.

Будут вопросы, пишите в комментах.

Ссылки

http://www.opennet.ru/base/sys/virtualbox_freebsd.txt.html

VirtualBox 4.1.10 Oracle VM VirtualBox Extension Pack

6 Comments

  1. Я бы еще кое-чего добавил конечно же, но по сути сказано практически все.

  2. как сделать чтобы виртуальные машины стартовали сразу при запуске хостовой?

  3. Немного недопонял по поводу того, как избавиться от задвоенного курсора. Собрал вчера phpVirtualbox и сам виртуалбокс версии 5.0. Проблема с задвоенным курсором получилась только на виртуальной windows7, линукс с КДЕ нормально. Какой куда образ запихать, чтоб на винде нормальный курсор был? Можете прокомментировать?

    1. Все. Понял. На том же диске есть и для винды exe файл и сертификаты. Все установил – проблемы кончились. За тему спасибо!

      1. Ну, да, Дмитрий! Установка Guest Additions решает проблему с курсором. Удачи!

Leave a Reply to Андрей Токарчук Cancel reply