Virtualbox - система виртуализации, на данный момент одна из наилучших бесплатных программных продуктов виртуализации. Лично тестировал работу гостевых: XP, Windows 2003, 2008, Debian, Ubuntu работает стабильно.
phpVirtualBox - AJAX реализация пользовательского интерфейса VirtualBox, написанного на PHP. Это веб-интерфейс для получения удалённого доступа к виртуальным машинам.
Данная инструкция полностью работоспособна и кстати данный сайт работает на виртуалке поднятой на Virtualbox по этой инструкции, вернее я поднял виртуальный сервер и затем рабочие записи переделал в подробнейшую рабочую инструкцию.
Для установки Virtualbox используем Debian или Ubuntu
Необходимо настроить репозиторий с оффициального сайта Virtualbox.
Добавляем в source.list репозиторий
vi /etc/apt/sources.list
Для Squeeze:
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free
Для Lenny:
deb http://archive.debian.org/debian/ lenny main contrib non-free
Для Ubuntu (выбрать свой дистрибутив):
deb http://download.virtualbox.org/virtualbox/debian oneiric contrib deb http://download.virtualbox.org/virtualbox/debian natty contrib deb http://download.virtualbox.org/virtualbox/debian maverick contrib non-free 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
Добавляем публичный ключ репозитория virtualbox командой:
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -
Обновляем репозиторий и запускаем установку virtualbox командами:
aptitude update aptitude install virtualbox-4.1
Для того, чтобы у нас работал доступ к RDP через web интерфейс и USB2 для виртуальной машины, необходимо скачать и установить дополнительный пакет virtualbox
Но перед тем как установить пакет дополнений, необходимо узнать версию установленного virtualbox командой:
vboxwebsrv -V Oracle VM VirtualBox web service version 4.1.22 (C) 2005-2012 Oracle Corporation All rights reserved. 4.1.22r80657
Получается, что у нас стоит версия 4.1.22r80657, потому заходим на страницу http://download.virtualbox.org/virtualbox/ и открываем директорию 4.1.18 и в самом верху видим файл Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack, он самый последний, потому его нам нужно скачать и установить.
Для этого скачиваем дополнительный пакет командой:
wget http://download.virtualbox.org/virtualbox/4.1.22/Oracle_VM_VirtualBox_Extension_Pack-4.1.22-80657.vbox-extpack
И устанавливаем скачанный пакет для работы rdp и usb2 командой:
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.*.vbox-extpack
После установки необходимо перезагрузить сервис vboxweb-service командами:
/etc/init.d/vboxweb-service stop /etc/init.d/vboxweb-service start
Для работы Virtualbox необходимо создать пользователя под которым будут работать виртуальные машины.
Добавляем пользователя vbox в систему командой:
adduser vbox
Указываем пароль пользователя vbox, предварительно записав его в свой блокнот для паролей.
Установка phpvirtualbox
Для того, чтобы работал phpvirtualbox через веб интерфейс, необходимо установить веб сервер с поддержкой PHP.
Устанавливаем програмное обеспечение командой:
aptitude install apache2 php5 mc unzip unrar
Далее качаем сам phpvirtualbox командой:
wget http://freefr.dl.sourceforge.net/project/phpvirtualbox/Older%20versions/phpvirtualbox-4.1-11.zip
распаковываем содержимое архива phpvirtualbox-4.1-11.zip в папку /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
vi /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.
Создаем виртульную машину с помощью мастера нажав на кнопку создать, и подключив образ нужного диска и выбрав в сдроме образ выполняем установку операционной системы.
Делаем автозапуск виртуальных машин при включении сервера, сохранение текущего состояния гостевой машины (не выключение) при выключении физическогосервера с восстановлением текущего состояния при включении сервера.
Автозапуск гостевой машины Virtualbox:
Создаем скрипт, который будет запускать и сохранять гостевые машины при включении, выключении сервера:
vi /etc/init.d/virtualbox #!/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="Gateway" 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/virtualbox update-rc.d virtualbox 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.
Необходимо: Свойства виртуальной машины - Дисплей - Удаленный дисплей - Дополнительные возможности - поставить галочку на Разрешить несколько подключений
Видео инструкция по этой статье:
Часть 1:
Часть 2:
Add new comment