Установка virtualbox с web-интерфейсом на сервер.
Имеем сервер на ubuntu 14.04. Нужно установить virtualbox с веб интерфейсом, чтобы установить несколько виртуальных машин на сервер.
Скрипт автоустановки для ленивых
Установка virtualbox.
Для начала установим сам virtualbox последней версии с репозиториев oracle.
Добавляем репозиторий и импортируем ключ
# echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee -a /etc/apt/sources.list
# wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
Устанавливаем virtualbox и модули ядра
# apt-get update
# apt-get install dkms virtualbox-5.0
Установим пакет дополнений гостевой ОС. Смотрим версию virtualbox
# vboxwebsrv -V
Oracle VM VirtualBox web service Version 5.0.2
(C) 2007-2015 Oracle Corporation
All rights reserved.
5.0.2r102096
И на этой странице берем ссылку для дополнений для нужной нам версии.
Скачиваем
# wget http://download.virtualbox.org/virtualbox/5.0.2/Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack
И устанавливаем
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack
Теперь создадим юзера, под которым будут работать наши виртуальные машины и добавим его в группу vboxusers
# adduser vbox
# usermod -a -G vboxusers 'vbox'
Не забываем пароль, который мы назначили пользователю vbox. Он нам ещё потребуется.
Настраиваем веб-сервис virtualbox
# nano /etc/default/virtualbox
VBOXWEB_USER=vbox #пользователь под которым работает virtualbox
VBOXWEB_HOST=xxx.xxx.xxx.xxx #ip
VBOXWEB_PORT=18083 #порт для веб-сервиса
Запускаем веб-сервис
# service vboxweb-service stop
# service vboxweb-service start
Установка web-интервейса.
Для работы веб интерфейса нам потребуется веб-сервер(мы будем использовать nginx) и php. Установим их.
# apt-get install nginx php5-common php5-fpm php-pear
Для ubuntu 16.04 кликнуть сюда
# apt-get install nginx php-common php-fpm php-pear php-soap
Создадим каталог для виртуального хоста.
# mkdir /var/www && mkdir /var/www/phpvirtualbox
На этой странице мы можем получить ссылки на архивы веб-интерфейса phpvirtualbox для разных версий virtualbox. В данном случае скачиваем и распаковываем в каталог виртуального хоста phpvirtualbox для нашей версии.
# cd /var/www/phpvirtualbox/ && wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-5.0-2.zip/download && mv download phpvirtualbox-5.0-2.zip
# unzip phpvirtualbox-5.0-2.zip && mv ./phpvirtualbox-5.0-2/* /var/www/phpvirtualbox
Копируем пример конфига
# cp /var/www/phpvirtualbox/config.php-example /var/www/phpvirtualbox/config.php
И редактируем
# nano /var/www/phpvirtualbox/config.php
# Пользователь и пароль под которым работает virtualbox
var $username = 'vbox';
var $password = 'PaS$w0rd';
# Адрес веб-сервиса
var $location = 'http://xxx.xxx.xxx.xxx:18083/';
# Диапазон rdp портов
var $vrdeports = '9000-9100';
# IP сервера
var $consoleHost = 'xxx.xxx.xxx.xxx';
Создаем файл виртуального хоста в nginx
# nano /etc/nginx/conf.d/phpvirtualbox.conf
server {
listen xxx.xxx.xxx.xxx:80;
root /var/www/phpvirtualbox/;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
# pass the PHP scripts to FastCGI server listening on 1$
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Для ubuntu 16.04 конфиг такой
server {
listen XXX.XXX.XXX.XXX:80;
root /var/www/phpvirtualbox/;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
# pass the PHP scripts to FastCGI server listening on 1$
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Перезапускаем nginx
# service nginx restart
Теперь перейдя по адресу http://ip-сервера/ мы увидим форму логина. По умолчанию логин — admin и пароль — admin. Логинимся, открываем меню File, пункт Preferences и меняем пароль в графе Users. В графе Language можно поставить русский язык.
Установка виртуальной машины.
Скачиваем установочный образ нужной нам ОС(в данном случае debian 8) в домашний каталог юзера vbox
# cd /home/vbox/
# wget http://mirror.yandex.ru/debian-cd/8.1.0/amd64/iso-cd/debian-8.1.0-amd64-CD-1.iso
Затем в веб-интерфейсе, кликаем кнопку создать и создаем виртуальную машину с нужными нам характеристиками.