В данной заметке я покажу, как настроить Web интерфейс для управления виртуальными машинами подготовленными через VirtualBox на системе Ubuntu Server 12.04. (если ставите на Desktop‘ую систему, но присутствуют затраты на RAM (оперативная память), а она Вам очень пригодиться при развертывании виртуальных машин, в моем случае так оно и было (её не хватало), но в целом Вам решать.) В управление входят все такие же действия, как и при запуске самой программы локально:
- выключение
- перезагрузка
- создание снимков системы для последующего отката и многое другое.
И так у нас есть система:
ekzorchik@polygon:~$ uname -a && lsb_release -a
Linux polygon 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
Подключим репозитарии virtualbox:
ekzorchik@polygon:~$ sudo nano /etc/apt/sources.list
deb http://download.virtualbox.org/virtualbox/debian precise contrib
ekzorchik@polygon:~$ sudo wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add –
OK
Обновляем репозитарии:
ekzorchik@polygon:~$ sudo apt-get update
Устанавливаем Virtualbox 4.2 в систему:
ekzorchik@polygon:~$ sudo apt-cache search virtualbox-4.2
virtualbox-4.2 – Oracle VM VirtualBox
ekzorchik@polygon:~$ sudo apt-get install virtualbox-4.2
Устанавливаем Apache, формируем виртуальный сайт phpvirtualbox:
- apache2-utils – utility programs for webservers
- apache2.2-bin – Apache HTTP Server common binary files
- apache2.2-common – Apache HTTP Server common files
ekzorchik@polygon:~$ sudo apt-get install apache2 apache2.2-bin apache2.2-common
ekzorchik@polygon:~$ sudo nano /etc/apache2/sites-available/default
приводим к виду:
<virtualhost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
</virtualhost>
ekzorchik@polygon:~$ sudo nano /etc/apache2/apache2.conf
ServerName localhost
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/
ekzorchik@polygon:~$ sudo /etc/init.d/apache2 reload
* Reloading web server config apache2 [ OK ]
ekzorchik@polygon:~$ sudo mkdir -p /var/www/phpvirtualbox
ekzorchik@polygon:~$ sudo mkdir -p /var/www/phpvirtualbox/log
ekzorchik@polygon:~$ sudo nano /etc/apache2/sites-available/phpvirtualbox.conf
<virtualhost *:80>
ServerAdmin webmaster@localhost
ServerName phpvirtualbox
ServerAlias phpvirtualbox
DirectoryIndex index.html
DocumentRoot /var/www/phpvirtualbox
LogLevel warn
ErrorLog /var/www/phpvirtualbox/log/error.log
CustomLog /var/www/phpvirtualbox/log/access.log combined
</virtualhost>
ekzorchik@polygon:~$ sudo service apache2 reload
* Reloading web server config apache2 [ OK ]
ekzorchik@polygon:~$ sudo a2ensite phpvirtualbox.conf
Site phpvirtualbox.conf already enabled
ekzorchik@polygon:~$ sudo apachectl restart
phpVirtualBox – это такая панель управления VirtualBox, доступная по определённому адресу и открываемая в браузере.
ekzorchik@polygon:~$ cd /var/www/phpvirtualbox/
ekzorchik@polygon:/var/www/phpvirtualbox$ sudo wget `wget -q -O – http://phpvirtualbox.googlecode.com/files/LATEST.txt` -O phpvirtualbox-latest.zip
–-2013-01-17 16:24:24– http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.2-4.zip
Resolving phpvirtualbox.googlecode.com (phpvirtualbox.googlecode.com)… 173.194.71.82, 2a00:1450:4010:c04::52
Connecting to phpvirtualbox.googlecode.com (phpvirtualbox.googlecode.com)|173.194.71.82|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 3663173 (3,5M) [application/zip]
Saving to: `phpvirtualbox-latest.zip’
100%[========================================================>] 3 663 173 1,04M/s in 3,4s
2013-01-17 16:24:27 (1,04 MB/s) – `phpvirtualbox-latest.zip’ saved [3663173/3663173]
Распаковываем архив:
ekzorchik@polygon:/var/www/phpvirtualbox$ sudo unzip phpvirtualbox-latest.zip
ekzorchik@polygon:/var/www/phpvirtualbox$ sudo mv phpvirtualbox-4.2-4/ php
ekzorchik@polygon:/var/www/phpvirtualbox$ cd php
ekzorchik@polygon:/var/www/phpvirtualbox/php$ sudo cp config.php-example config.php-example.backup
ekzorchik@polygon:/var/www/phpvirtualbox/php$ sudo mv config.php-example config.php
ekzorchik@polygon:/var/www/phpvirtualbox/php$ sudo nano config.php
/* Username / Password for system user that runs VirtualBox */
/* Указываем логи и пароль для системного пользователя из под которого будет запускаться приложение Virtualbox, я использовал запуск под своей учетной записью – ekzorchik */
var $username = ‘ekzorchik’;
var $password = ‘Aa1234567’;
ekzorchik@polygon:/var/www/phpvirtualbox/php$ sudo wget -c http://phpvirtualbox.googlecode.com/files/vboxwebsrv
–2013-01-17 16:27:59– http://phpvirtualbox.googlecode.com/files/vboxwebsrv
Resolving phpvirtualbox.googlecode.com (phpvirtualbox.googlecode.com)… 173.194.71.82, 2a00:1450:4010:c04::52
Connecting to phpvirtualbox.googlecode.com (phpvirtualbox.googlecode.com)|173.194.71.82|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 2446 (2,4K) [application/x-shellscript]
Saving to: `vboxwebsrv’
100%[========================================================>] 2 446 –.-K/s in 0,06s
2013-01-17 16:27:59 (41,1 KB/s) – `vboxwebsrv’ saved [2446/2446]
ekzorchik@polygon:/var/www/phpvirtualbox/php$ sudo chmod +x vboxwebsrv
ekzorchik@polygon:/var/www/phpvirtualbox/php$ sudo cp vboxwebsrv /etc/init.d/
ekzorchik@polygon:/var/www/phpvirtualbox/php$ sudo vboxwebsrv -b
Oracle VM VirtualBox web service Version 4.2.6
(C) 2007-2012 Oracle Corporation
All rights reserved.
VirtualBox web service 4.2.6 r82870 linux.x86 (Dec 19 2012 14:55:50) release log
00:00:00.013385 main Log opened 2013-01-17T12:28:57.566185000Z
00:00:00.013390 main OS Product: Linux
00:00:00.013391 main OS Release: 3.2.0-23-generic-pae
00:00:00.013393 main OS Version: #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012
00:00:00.013427 main DMI Product Name: VirtualBox
00:00:00.013434 main DMI Product Version: 1.2
00:00:00.013442 main Host RAM: 692MB total, 89MB available
00:00:00.013445 main Executable: /usr/lib/virtualbox/vboxwebsrv
00:00:00.013446 main Process ID: 9276
00:00:00.013448 main Package type: LINUX_32BITS_UBUNTU_12_04
Открываем через браузер
К примеру, на этой станции, у меня установлено графическое окружение: Applications – Internet – FirefoxWebBrowser
http://localhost/phpvirtualbox/php
Смотрим какие версии пакетов virtualbox, apache и php установлены в системе:
ekzorchik@polygon:~$ sudo dpkg -l | grep -iE ‘(virtualbox|apache|php)’
Устанавливаем php5 в систему:
ekzorchik@polygon:~$ sudo apt-get install php5
ekzorchik@polygon:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 … waiting [ OK ]
Запускаем снова и открываем браузер:
ekzorchik@polygon:~$ cd /var/www/phpvirtualbox/php/ && vboxwebsrv &
[1] 10870
ekzorchik@polygon:~$ Oracle VM VirtualBox web service Version 4.2.6
(C) 2007-2012 Oracle Corporation
All rights reserved.
VirtualBox web service 4.2.6 r82870 linux.x86 (Dec 19 2012 14:55:50) release log
00:00:00.001171 main Log opened 2013-01-18T04:22:48.494421000Z
00:00:00.001175 main OS Product: Linux
00:00:00.001176 main OS Release: 3.2.0-23-generic-pae
00:00:00.001178 main OS Version: #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012
00:00:00.001205 main DMI Product Name: VirtualBox
00:00:00.001213 main DMI Product Version: 1.2
00:00:00.001220 main Host RAM: 692MB total, 64MB available
00:00:00.001223 main Executable: /usr/lib/virtualbox/vboxwebsrv
00:00:00.001224 main Process ID: 10871
00:00:00.001225 main Package type: LINUX_32BITS_UBUNTU_12_04
00:00:00.164802 SQPmp #### SOAP FAULT: Address already in use [SOAP-ENV:Server]
при открытии браузера наблюдаем окно ввода логина и пароля:
Для входа на Web-интерфейс управления виртуальными машинами используем логин: admin и пароль admin.
http://ekzorchik.ru/phpvirtualbox/php — это мой внутренний адрес в моей локальной сети, в Вашем случае можно указыть как полное DNS имя, так и IP адрес Вашей системы на которой разворачиваете Virtualbox.
На заметку: В данном примере я рассмотрел на примере VirtualBox 4.2.6, но на сегодняшний день уже существует версия 4.2.12, так что принцип и шаге одинаковы один в один.
В результате мы получили и настроили бесплатный Web-интерфейс реализованный на PHP и использующий встроенную в VirtualBox службы удалённого управления VirtualBox Web Service. Всё это было сделано, для того чтобы управлять из любого места своими тестовыми система, будь-то домашняя локальная сеть либо в компании. На этом всё, удачи!!! Следите за обновления на моём блоге.
Отлично. То что надо для постоянного доступа с планшетника сидя на диване. Хорошая заметка, а самое главное практичная и никакой воды…Респект автору!!! :)
Подписался на РСС, буду следить =)