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

// Декабрь 29th, 2010 // Ubuntu, Аппаратное обеспечение, Виртуализация

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 на этй тему, однако авторы похоже уже ушли на каникулы Установка virtualbox debian без графического

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:

wget http://download.virtualbox.org/virtualbox/debian/pool/non-free/v/virtualbox-3.2/virtualbox-3.2_3.2.12-68302~Ubuntu~maverick_amd64.deb
sudo apt-get install dkms
sudo dpkg -i ./virtualbox-3.2_3.2.12-68302~Ubuntu~maverick_amd64.deb

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

var $username = 'ian';
var $password = 'pass';

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

# PHP-FPM (backend)
upstream php-fpm {
server 127.0.0.1:9010;
}

# Конфиг Nginx (frontend)
server {

# Порт, принимаемые HOST и путь к сайту
listen 80;
server_name www.vm.com vm.com;
set $root_path '/var/www/phpvirtualbox';
root $root_path;

# Для картинок
location ~* \.(css|js|png|jpg|gif|html|htm|ico|swf)$ {
root $root_path;
# access_log off;
# expires    30d;
}

# Запросы непосредственно .php-файлов, например утилит или index.php (не кэшируются)
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $root_path/$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $root_path; # этот параметр нужен несмотря на root в секции server
fastcgi_pass php-fpm;
}

# Копия предыдущего для internal переадресации
location @phpscripts {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $root_path/$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $root_path; # этот параметр нужен несмотря на root в секции server
fastcgi_pass php-fpm;
}

# Остальные запросы также идут на PHP-FPM, если $uri не существует (через memcache)
location / {
#add_header    Content-Type  "text/html";
root  $root_path;
error_page 404 502 504 405 = @php;
}

# Веб-приложение
location @php {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $root_path/index.php;
fastcgi_pass php-fpm;
}
}

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

192.168.0.17      vm.com

Запускаем:

$ sudo service php5-fpm start
$ sudo service nginx start
$ vboxwebsrv &

В броузере топаем по адресу: 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:
Phpvirtualbox Установка
Cоздаём новую машину:
Phpvirtualbox ubuntu

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

Phpvirtualbox ubuntu

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

PHP virtualbox

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

Phpvirtualbox

Установка virtualbox debian без графического

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

Virtualbox без X-Сервера

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

Phpvirtualbox ubuntu

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

Phpvirtualbox ubuntu

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

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

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

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

sudo apt-get install gnome-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




Related posts

coded by nessus
Phpvirtualbox ubuntu











Смотрите также:

3 Responses to “VirtualBox без X сервера (Headless mode) & phpVirtualBox”

  1. Установка virtualbox debian без графического Лала:

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

  2. Phpvirtualbox ubuntu max:

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

Комментировать