Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

07
Ноя 2012
sergldom
автор
38
комментариев
Рейтинг статьи:
4
Средняя: 4 (1 оценка)

Установка Virtualbox на сервер Ubuntu 12.04 с управлением через веб интерфейс phpvirtualbox и автозапуском виртуальных машин

Асинхронное движение мышки в гостевой Windows по RDP в PHPVirtualbox      ]]>Virtualbox]]> - полноценный сервер виртуализации, аналог Vmware Server. Cистема виртуализации на Virtualbox на данный момент одна из наилучших  бесплатных программных продуктов виртуализации. Лично тестировал работу гостевых: XP, Windows 2003, 2008, Debian, Ubuntu работает стабильно.
      ]]>phpVirtualBox ]]>- AJAX реализация пользовательского интерфейса VirtualBox, написанного на PHP. Это веб-интерфейс для получения удалённого доступа к виртуальным машинам.

      Данная инструкция сделана на многочисленные просьбы пользователей.

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

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

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

vi /etc/apt/sources.list
deb http://download.virtualbox.org/virtualbox/debian precise contrib

Либо же добавить репозиторий командой:

echo 'deb http://download.virtualbox.org/virtualbox/debian precise contrib' >> /etc/apt/sources.list

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

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

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

aptitude update

      Обновляем систему до самых свежих версий командой:

aptitude dist-upgrade

После обновления перезагружаемся, чтобы загрузиться в обновленное ядро командой:

reboot

      Запускаем установку Virtualbox 4.2 командой соглашаясь на требования установщика:

aptitude install virtualbox-4.2

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

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

vboxwebsrv -V

Ответ системы:

Oracle VM VirtualBox web service Version 4.2.4
(C) 2007-2012 Oracle Corporation
All rights reserved.
4.2.4r81684

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

Для этого скачиваем дополнительный пакет командой:

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

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

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2*.vbox-extpack

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

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

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

adduser vbox

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

Создаем файл отвечающий на каком айпи и порту будет работать 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

      Установка phpvirtualbox

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

aptitude install apache2 php5 mc unzip unrar

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

wget http://netcologne.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.2-8.zip

распаковываем содержимое архива phpvirtualbox-4.2-8.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:

vi 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';

Открываем в браузере адрес нашего сервера:

http://192.168.0.1/

и вводим

логин:   admin
пароль: admin

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

Ubuntu 12.04 c установленным сервером виртуализации Virtualbox c веб интерфейсом phpvirtualbox

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

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

Ubuntu 12.04 c установленным сервером виртуализации Virtualbox c веб интерфейсом phpvirtualbox и созданной виртуальной машиной test

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

Автозапуск гостевой машины 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.

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

 

!!! Если Вы в виртуальной машине вместо образа установочного диска выбрали использовать физический привод CD/DVD и Вам веб интерфейс PHPVirtualbox выдал ошибку:

Cannot open host device '/dev/sr0' for readonly access. Check the permissions of that device ('/bin/ls -l /dev/sr0'): Most probably you need to be member of the device group. Make sure that you logout/login after changing the group settings of the current user (VERR_ACCESS_DENIED)

Ошибка при запуске виртуальной машины: Cannot open host device '/dev/sr0' for readonly access...

Это значит, что пользователю под которым мы запускаем виртуальную машину, в нашем случае это vbox нет прав на пользование физическим приводом CD/DVD.

Для лечения этой ошибки достаточно добавить пользователя vbox в группу cdrom командой:

usermod -G cdrom -a vbox

Задача выполнена, Virtualbox установлен на сервер с Ubuntu 12.04 Precise, установлен и настроен веб интерфейс PHPVirtualbox, настроен автозапуск виртуальных машин.

С Вами был Сергей Лазаренко.

 

Сделаем небольшой перерывчик в работе, посмотрим на физические достижения 5-ти летнего мальчика:

Рейтинг статьи: 

4
Средняя: 4 (1 оценка)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

]]>]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

38 комментария:
Николай
25/09/2013 - 11:54
Большое спасибо за статью. Давно искал хауту сделать сервер виртаульных машин. Самому нужно было. Все устанавливается и все работает! Только один вопрос: как подключиться на виртуальную машину извне? Надо ставить номер порта  или дополнительное окончание в ip-адресе?    
25/09/2013 - 21:47
Здравствуйте. Всегда пожалуйста. Для того и разрабатывал инструкцию, чтобы она была рабочая. Подключатся к виртуалке можно стандартно как и к любому компьютеру за сервером, то есть можно пробросить порт SSH используя файрвол - это самое простое, как в прочем я и делаю.
Сергей
15/10/2013 - 22:12
Супер инструкция все работает как по маслу! Добавил в закладки) Спасибо за труд!)
PRODVi
30/12/2013 - 10:09
То что нужно! И расписано более, чем понятно! Спасибо!
06/01/2014 - 11:30
Подскажите насчет автоматичекой загрузки виртульной машины, все сделал по интсрукции, но стокнулся с пробелемой так как в clearos 6.4 (на базе CentOS)нет команды update-rc.d, но для атвоматической занрузки используют каманду chkconfig.Пропиал chkconfig /etc/init.d/virtualbox on. Пишет сервис virtualbox не поддерживает chkconfig.    
06/01/2014 - 11:45
Извините, но данная инструкция сделана для Debian и Ubuntu, для них и скрипт запуска написан. Для Centos Вам необходимо сделать (написать, найти в интернет) скрипт запуска программ.
06/01/2014 - 12:04
Понятно, спасибо за довольно быстрый ответ
06/01/2014 - 13:31
В принципе нашел решение, может не совсем то что надо,но виртуальную машину  при загрузке системы запустит. Нужно в /etc/rc.d/rc.local добавить строку /bin/su -l vbox -c '/usr/bin/VBoxHeadless --startvm Windows7 2>&1 &' , где в место Windows7 нужно добавить имя виртульной машины.
06/01/2014 - 13:43
Согласен ,что этот костыль запустит виртуалку, но он корректно не пагасит.
07/01/2014 - 20:09
Как раз с выключением касеков нет, при завершении системы, вертуальная машина выключается, но было бы круто если бы сохранялась.  
Sasa256
16/01/2014 - 14:17
Не могу зайти в VirtualBox через вебморду . После ввода логина-пароля выдает такое сообщение -  Could not connect to host (http://192.168.3.114:18083/)   Где может быть касяк?
16/01/2014 - 15:39
Внимательно пройдите еще инструкцию, пропустили что-то.
PRODVi
30/01/2014 - 09:56
К сожалению натолкнулся на такую неприятную вещь - не могу попасть на машину, то ли она IP не получает, толи ещё чего. Но выяснился большой недостаток - я не могу получить доступ к ВМ с веб-интерфейса, либо запустив ВиртуалБокс, просто такой возможности НЕТ. Подскажите пожалуйста, что можно сделать в моём случае? просканил всю сетку, машины не нашёл, как на неё попасть ума не приложу..
30/01/2014 - 15:21
Здравствуйте.       Я не понимаю что вы имеете ввиду, если у вас открывается веб интерфейс, то вы можете как запустить, остановить виртуальную машину, так и нажав справа вверху на Консоль зайти через встроенный rdp клиент нажав кнопку Подключить выбрав нужное разрешение.       Но только это в том случае, если Вы все сделали по инструкции.
PRODVi
30/01/2014 - 15:29
Если бы можно было зайти по консоли - я бы сюда не писал, т.к. смог бы посмотреть что с ней. Но я этого сделать просто не могу (хотя раньше заходил превосходно). Тоесть либо при использовании веб-интерфейса эта возможность исчезла, либо после обновления ядра (недавно линь обновлял) что-то хрякнулось. Сейчас, сохранив ВМ, удалил виртуалбокс, поставил заново, консоль работает. Завтра буду заново настраивать работу через веб-интерфейс. И в баню все эти обновы, только ломают.
PRODVi
30/01/2014 - 15:56
Решил сейчас настроить, выполнил все пункты, открываю веб-интерфейс, а там: http://pikucha.ru/icz2E root@AVP:/var/www# vboxheadless -V Oracle VM VirtualBox Headless Interface 4.3.6   Что может быть?
30/01/2014 - 16:08
Ну как я и говорил - не по инструции установлено!!! В инструкции устанавливатся Virtualbox 4.2 версии, под эту версию и phpvirtualbox. Скачайте phpvirtualbox командой: wget http://netcologne.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-1.zip И замените все файлы новыми.
PRODVi
31/01/2014 - 09:18
Спасибо, скачал файл, удалил всё из директории /var/www и распаковал туда архив. После этого перезагрузил ПК на всякий. Ошибка в веб-интерфейса та же. Но есть ещё одно непонятное дело - по 80 порту открывается какой-то фон, похожий на виртуалбоксовский... http://pikucha.ru/icz8Z Ниже приведу часть конфигов:   root@AVP:/etc/apache2# cat /etc/default/virtualbox VBOXWEB_USER=fukurukudzu VBOXWEB_HOST=192.168.168.106 VBOXWEB_PORT=8080   root@AVP:/etc/apache2# cat /etc/default/virtualbox VBOXWEB_USER=fukurukudzu VBOXWEB_HOST=192.168.168.106 VBOXWEB_PORT=8080     Ну и что менял в конфиге веб-интерфейса: # cat /var/www/config.php ... /* Username / Password for system user that runs VirtualBox */ var $username = 'fukurukudzu'; var $password = 'PASS'; ... /* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */ var $location = 'http://192.168.168.106:8080/';    
PRODVi
31/01/2014 - 09:20
Сори, забыл ещё добавить по конфигу:   // Host / ip to use for console connections var $consoleHost = '192.168.168.106';
31/01/2014 - 18:53
Ну не знаю что у вас не так, давайте доступ рута посмотрю На почту
06/02/2014 - 09:36
Здравствуйте Сергей! Хорошая статья! Уже полгода использую virtualbox, а вот сегодня столкнулся с проблемой подключения USB flash непосредственно в виртуальную машину. Не видит флешку виртуалка хотя в Ubuntu ёё видно. Возможно, сталкивались с такой проблемой?
prodvi
07/02/2014 - 05:51
Спасибо, но я решил с веб-мордой не заморачиваться, сделал скрипт на автозапуск-погашение и этого достаточно. А админить буду из виртуалбокса при необходимости.
11/02/2014 - 17:13
Все исправил! пользователя добавить в группу  vboxusers коммандой sudo usermod -aG vboxusers user
14/02/2014 - 23:16
Думал что все получилось,  и даже не попробовал открыть флешку на самой виртуальной машине - но ничего  там не оказалось. Пишет в настройках виртуальной машины что есть Usb устройство но на виртуальную машину оно не попадает почему-то. Попробовал установить на другой машине Virtualbox 4.3 но там та же история.
Вася
27/02/2014 - 09:05
1 http://192.168.0.1/ и вводим логин:   admin пароль: admin пишет пароль не правильный как его можно сбросить ? уже установленно было у меня кто устанавливал его не могу найти вот как быть подскажите ?  
27/02/2014 - 17:43
Для сброса пароля в phpvirtualbox необходимо изменить файл recovery.php-disabled в recovery.php  и запустить его через веб браузер. После сброса пароля снова переименовать как было.
DimmKo
20/08/2014 - 15:00
у меня как раз сохраняется, но не стартует. Ubuntu Server (i686)
20/08/2014 - 15:19
Попробуйте скрипт запуска с этой инструкции: http://softnastroy.com/content/ustanovka-virtualbox-4-na-server-debian-wheezy-s-veb-interfeysom-phpvirtualbox-avtozapusk-virtualnyh-mashin.html
DimmKo
21/08/2014 - 10:18
Увы, но всё так же. Сохраняется, но при перезапуске сервера не стартует. Ubuntu Server 14.04 (i686) Distributor ID: Ubuntu Description:    Ubuntu 14.04.1 LTS Release:        14.04 Codename:       trusty  
RusikOK
17/09/2014 - 16:34
что делать если апач установлен и используется в качестве web-сервера? и как сделать доступ к админке машин только по тунелю SSH?
RusikOk
17/09/2014 - 16:39
https://phpvirtualbox.googlecode.com Project Moved!!!
17/09/2014 - 17:04
Добавлять новый виртуальный хост и туда файлы phpvirtualbox.
17/09/2014 - 17:06
Скачивайте на данной странице: http://sourceforge.net/projects/phpvirtualbox/files/?source=navbar Обновил в инструкции ссылки на актуальные.
RusikOk
17/09/2014 - 22:01
тоесть ничего страшного, что админка будет запускаться от одного пользователя а сама виртуальная машина от другого. я правильно понимаю?
17/09/2014 - 22:03
Ничего страшного
26/07/2015 - 12:19
Здравствуйте. Ни как не получаетс настроить. использую адресс везде 192,168,0,102 это адрес сервера внутри сети. Сервер за маршрутизатором, но порты переброшенны. Из внешней сети могу зайти на веб интерфейс до момента таблички авторизации, после выдаёт сообщение об ошибке: Exception Object ( [message:protected] => Could not connect to host (http://192.168.0.102:18083/) [string:Exception:private] => [code:protected] => 64 [file:protected] => /www/phpvirtualbox/lib/ajax.php [line:protected] => 123 [trace:Exception:private] => Array ( ) [previous:Exception:private] => ) Из самого сервера даже таблички авторизации нет. Настройки конфига апача: ServerName shamansrv <VirtualHost *:80> ServerName v.server ServerAlias v.server www.v.server DocumentRoot /www/phpvirtualbox/ ErrorLog /www/error.log CustomLog /www/access.log combined <Directory /www/phpvirtualbox/> Require all granted Require all denied </Directory> </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet   Настройки config.php <?php class phpVBoxConfig { var $username = 'vbox'; var $password = 'gepard_games'; var $location = 'http://192.168.0.102:18083/'; var $language = 'en'; var $vrdeports = '9000-9100'; #var $noAuth = true; var $consoleHost = '192.168.0.102'; #var $noPreview = true; #var $previewUpdateInterval = 30; #var $previewWidth = 180; var $maxProgressList = 5; #var $previewAspectRatio = 1.6; #var $enableCustomIcons = true; #var $phpVboxGroups = true; var $deleteOnRemove = true; var $browserRestrictFiles = array('.iso','.vdi','.vmdk','.img','.bin','.vhd','.$ #var $browserRestrictFolders = array('D:\\','C:\\Users\\Ian'); // Or something $ #var $browserLocal = true; #var $browserDisable = true; #var $noWindowsDriveList = true; #var $forceWindowsAllDriveList = true; var $hostMemInfoRefreshInterval = 5; #var $hostMemInfoShowFreePct = true; #var $vmMemoryStartLimitWarn = true; #var $vmMemoryOffset = 100; #var $enableGuestAdditionsVersionDisplay = true; #var $disableTabVMSnapshots = true; // Snapshots tab #var $disableTabVMConsole = true; // Console tab var $consoleResolutions = array('640x480','800x600','1024x768','1280x720','1440$ var $consoleKeyboardLayout = 'EN'; var $nicMax = 4; #var $enableAdvancedConfig = true; #var $startStopConfig = true; #var $enforceVMOwnership = true; #var $vmQuotaPerUser = 2; #var $enableVDE = true;  #var $disableSataPortCount = true; #var $enableLPTConfig = true; #var $enableHDFlushConfig = true; #var $eventListenerTimeout = 20; }        
27/07/2015 - 00:03
В настройках панели нужно указывать внешний айпи на который вы подключаетесь, так как панель работает с внутренним(он прописан 192...) и пытается подключится к внутреннему, а вы снаружи не видите внутренний.
kereo
13/01/2016 - 10:22
Сегодня наткнулся на файлик vboxinit в папке с phpvirtualbox. Готовый скрипт. Для настройки надо только прописать переменные в виртуальных машинах VBoxManage setextradata VM_NAME pvbx/startupMode auto подробнее (http://jason.ferrer.com.ph/2013/10/virtualbox-autosave-autostart-of-vms.html)

Добавить комментарий

Filtered HTML

  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.