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