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

Установка 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 перемещаем в директорию 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 и у нас открывается такой же интерфейс, как и у десктопной версии

Установка в 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, после чего можно будет коннектиться к виртуалке. (подробнее можно почитать здесь)

Взято отсюда

Комментарии

comments powered by Disqus