Установка Virtualbox Ubuntu сервер с управлением через веб интерфейс

VirtualBox Logo

Virtualbox - система виртуализации, на данный момент одна из наилучших бесплатных программных продуктов виртуализации. Лично тестировал работу гостевых виртуалок MS Windows 95 - 8, Debian, Ubuntu последних версий - всё работает стабильно.

phpVirtualBox - AJAX реализация пользовательского интерфейса VirtualBox, написанного на PHP. Это веб-интерфейс для получения удалённого доступа к виртуальным машинам.

Для установки Virtualbox используем Debian или Ubuntu

Необходимо настроить репозиторий с официального сайта Virtualbox.

Добавляем в source.list репозиторий

nano /etc/apt/sources.list

Для Ubuntu (выбрать свой дистрибутив):

deb http://download.virtualbox.org/virtualbox/debian oneiric contrib
deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free
deb http://download.virtualbox.org/virtualbox/debian karmic contrib non-free
deb http://download.virtualbox.org/virtualbox/debian hardy contrib non-free
deb http://download.virtualbox.org/virtualbox/debian precise contrib
deb http://download.virtualbox.org/virtualbox/debian trusty contrib
deb http://download.virtualbox.org/virtualbox/debian vivid contrib

Добавляем публичный ключ репозитория virtualbox командой:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -

Обновляем репозиторий и запускаем установку virtualbox командами:

apt-get update
apt-get install virtualbox-5.0

Для того, чтобы у нас работал доступ к RDP через web интерфейс и USB2 для виртуальной машины, необходимо скачать и установить дополнительный пакет virtualbox

Но перед тем как установить пакет дополнений, необходимо узнать версию установленного virtualbox командой:

vboxwebsrv -V

Oracle VM VirtualBox web service version 5.0.2
(C) 2005-2012 Oracle Corporation
All rights reserved.


Получается, что у нас стоит версия 5.0.2, потому заходим на страницу http://download.virtualbox.org/virtualbox/ и открываем директорию 5.0.2 и в самом верху видим файл Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack, он самый последний, потому его нам нужно скачать и установить.

wget http://download.virtualbox.org/virtualbox/5.0.2/Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack

И устанавливаем скачанный пакет для работы rdp и usb2 командой:

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack

После установки необходимо перезагрузить сервис vboxweb-service командами:

/etc/init.d/vboxweb-service stop
/etc/init.d/vboxweb-service start

Для работы Virtualbox необходимо создать пользователя под которым будут работать виртуальные машины.
Добавляем пользователя vbox в систему командой:

adduser vbox

Указываем пароль пользователя vbox, предварительно записав его в свой блокнот для паролей.

Установка phpvirtualbox
Для того, чтобы работал phpvirtualbox через веб интерфейс, необходимо установить веб сервер с поддержкой PHP.
Устанавливаем программное обеспечение командой:

apt-get install apache2 php5 mc unzip unrar

Далее качаем сам phpvirtualbox (предварительно удостоверившись на странице, что это на данный момент самая последняя версия) командой:

wget 'http://sourceforge.net/projects/phpvirtualbox/files/latest/download'

распаковываем содержимое архива download в папку /var/www/ предварительно удалив в ней все с помощью программы mc.
Меняем права на файлы phpvirtualbox для веб сервера командой:

chown -R www-data:www-data /var/www/*

Перегружаем веб сервер командой:

/etc/init.d/apache2 restart

Далее переходим в папку /var/www/ командой:

cd /var/www/

Создаем конфигурационный файл из дефолтного командой:

mv config.php-example config.php

изменяем config.php:

/* Username / Password for system user that runs VirtualBox */
var $username = 'vbox';
var $password = 'pass';

где pass - ваш пароль введенный при создании пользователя vbox

Изменяем далее:
было:

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://127.0.0.1:18083/';

Внимание!!! Для того, чтобы работал rdp через веб интерфейс, необходимо указать не 127.0.0.1 а внутренний либо внешний IP , например 192.168.0.1(внутренний адрес сервера)
стало:

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://192.168.0.1:18083/';

было:

// Host / ip to use for console connections
#var $consoleHost = '192.168.1.40';

стало:

// Host / ip to use for console connections
var $consoleHost = '192.168.0.1';

Создаем файл отвечающий на каком айпи и порту будет работать virtualbox

nano /etc/default/virtualbox
VBOXWEB_USER=vbox
VBOXWEB_HOST=192.168.0.1
VBOXWEB_PORT=18083

Внимание!!! можно указать IP 127.0.0.1, но для того, чтобы работал rdp через веб интерфейс, необходимо указать не 127.0.0.1 а внутренний либо внешний IP , например 192.168.0.1(внутренний адрес сервера)
Перезагружаем virtualbox командой:

/etc/init.d/vboxweb-service restart

Открываем в браузере адрес нашего сервера:
http://192.168.0.1/
и вводим
логин: admin
пароль: admin

Откроется веб интерфейс на английском языке, который можно изменить в настройках на русский, кстати настоятельно рекомендую изменить у пользователя пароль, а лучше создать администратора с не типичным именем и сложным паролем, а текущий удалить, тогда если у Вас интерфейс глядит в инет (что не рекомендуется для безопасности) пароль и логин будет гораздо сложнее (практически не возможно) подобрать.

Интерфейс веб интерфейса практически ничем не отличается от десктопной версии Virtualbox.

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

Делаем автозапуск виртуальных машин при включении сервера, сохранение текущего состояния гостевой машины (не выключение) при выключении физического сервера с восстановлением текущего состояния при включении сервера.

Автозапуск гостевой машины Virtualbox:

Создаем скрипт, который будет запускать и сохранять гостевую машину под названием "vboxmachine1" при включении, выключении сервера:

nano /etc/init.d/vboxmachine1



#!/bin/bash
START="/bin/bash"

#if [ ! -f /etc/rc.vm ]; then
# echo "/etc/rc.vm does not exist"
# exit 0
#fi

VBOXDIR="/etc/vbox"
VM_USER="vbox"
SU="su - $VM_USER -c"
VBOXMANAGE="VBoxManage -nologo"
VM="vboxmachine1"

case "$1" in
start)
echo -n "Starting up virtual maschine $VM"
$SU "VBoxHeadless --startvm $VM > /dev/null 2>&1 &"
echo "done."
;;
restart)
$SU "VBoxManage controlvm $VM reset"
;;
stop)
$SU "VBoxManage controlvm $VM savestate"
;;
stopacpi)
$SU "VBoxManage controlvm $VM acpipowerbutton"
exit 0
;;
*)
echo "Usage: $N {start|restart|stop}" >&2
exit 1
;;
esac

exit 0


В этом файле необходимо изменить только переменную VM, в ней нужно указать название вашей виртуальной машины, которая отображается в веб интерфейсе phpvirtualbox.
Делаем файл исполняемым и добавляем его в автозагрузку командами:

chmod +x /etc/init.d/vboxmachine1
update-rc.d vboxmachine1 defaults

Для каждой гостевой машины необходимо сделать свой файл запускающий и сохраняющий виртуальную машину при включении-выключении сервера.

!!!Ошибки
Если при открытии веб интерфейса выдает ошибку:

Error logging in to vboxwebsrv

необходимо запустить команду под пользователем vbox:

su vbox
VBoxManage setproperty websrvauthlibrary null

Ctrl+d

Затем перезагрузить virtualbox командой:

/etc/init.d/vboxweb-service restart

Если выдает такую ошибку при подключении к RDP:

Disconnect reason: I: MCS: Disconnect Request I: RDPCLIENT: The server has dropped connection.

Необходимо: Свойства виртуальной машины - Дисплей - Удаленный дисплей - Дополнительные возможности - поставить галочку на Разрешить несколько подключений

!!!Полезные советы
Для клонирования виртуального диска используйте команду:

VBoxManage clonevdi /path/to/VMdisk/Disk_old.vdi /New_path/to/VMdisk/Disk_new.vdi

Для изменения размера виртуального диска (!только для VirtualBox версий 4.3 выше), зайдите через терминал в директорию с необходимым диском и выполните команду:

VBoxManage modifyhd Disk.vdi --resize размер_в_мегобайтах
Оцените блог: 
Средняя: 2.6 (195 оценки)