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

 

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

Установка Virtualbox 4.2 на сервер Debian Squeeze с веб интерфейсом phpvirtualbox, автозапуск виртуальных машин

Девушка с татуировкой Debian на рабочий стол

      ]]>Virtualbox]]> - система виртуализации, на данный момент одна из наилучших  бесплатных программных продуктов виртуализации. Лично тестировал работу гостевых: XP, Windows 2003, 2008, Debian, Ubuntu работает стабильно.

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

Для установки Virtualbox мы будем используем операционную систему Linux Debian 6 Squeeze.

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

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

vi /etc/apt/sources.list
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free

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

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

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

aptitude update

Для архитектуры amd64 (64bit) скачиваем и устанвливаем Virtualbox командами:

wget http://download.virtualbox.org/virtualbox/4.2.8/virtualbox-4.2_4.2.8-83876~Debian~squeeze_amd64.deb
dpkg -i virtualbox-4.2_4.2.8-83876~Debian~squeeze_amd64.deb

Для архитектуры i386 (32bit) скачиваем и устанвливаем Virtualbox командами:

wget http://download.virtualbox.org/virtualbox/4.2.8/virtualbox-4.2_4.2.8-83876~Debian~squeeze_i386.deb
dpkg -i virtualbox-4.2_4.2.8-83876~Debian~squeeze_i386.deb

Устанавливаем все зависимости командами:

aptitude install libcurl3-gnutls libgl1-mesa-glx libpng12-0 libpython2.6 libqt4-network libqt4-opengl libqtcore4 libqtgui4 libsdl1.2debian libxcursor1 libxinerama1 libxmu6 libxt6

 

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

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

vboxwebsrv -V
Oracle VM VirtualBox web service Version 4.2.8
(C) 2007-2013 Oracle Corporation
All rights reserved.
4.2.8r83876

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

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

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

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

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.8.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://netcologne.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.2-7.zip

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

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

Установлен Virtualbox 4.2 с веб интерфейсом PHPVirtualbox на Debian Squeeze

 

Ошибки!!!

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

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 4.2 установлен на сервер с Debian Squeeze, установлен и настроен веб интерфейс PHPVirtualbox, настроен автозапуск виртуальных машин.

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

 

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

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

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

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

]]>]]>

 

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

 

 
 

 

10 комментария:
07/11/2012 - 19:33
Вопрос только один - постоение на Дебиане принципиально? Центос? Убунту?  Прошлая статья тоже была на Squeeze, поэтому принципиальных отличий между статьями нет (почти). Если поднимать на Убунту 12 Сервер, то там проблемы начинаются уже с ручного редактирования параметров интерфейсов, что является по сути задачей для гуру (про ручные настроки DNS скромно помолчу).  Не подумайте привратно (Дебиан - это тоже очень здорово), но проблема перехода платформы с Ubuntu 10 (анлогия Squeeze)  на Ubuntu 12 не освещена.
07/11/2012 - 19:35
Будет и на ubuntu 12.04 Почти готова инструкция.
07/11/2012 - 19:38
Столкнуся с проблемой установки Server 2008 R2 из-за не соответствия разрядности платформы и виртуальной машины. Дадите рекомендации?
07/11/2012 - 19:40
Ставте 32 бит версию Windows server 2008 на виртуальную машину.
08/11/2012 - 17:58
Тогда вопрос возникает следующий. К примеру, на предприятии (назовём его ООО "Рога и Копыта") решили перейти с физических серверов на виртуализацию, сэкономив при этом на покупке Win2008R2, заменив её на Linux с VirtualBox на борту. А в качестве виртуальных машин уже использовать Win2008R2 (к примеру для сервера терминалов). Всё конечно здорово, но оказывается, что 64-х битную ось не поставишь, т.к. отсутствует поддержка. 32-битная ограничена по памяти и уже не прокатывает. В итоге ООО "Рога и Копыта" вынуждена закупать как платформу Win2008R2 с Hyper-V на борту, а прекрасная идея использования Linux останется просто идеей. Вопрос применения в продакшн остаётся в силе.
08/11/2012 - 18:56
Ну какие же вопросы - мир клином не сошелся на Virtualbox. Ставте Proxmox, KVM поддерживает 64 бит
8aa8sik
16/06/2013 - 13:08
Добрый день, интересная статья, но не могли бы помочь разобраться со скриптом название машини  #!/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 $WinSRV2008R2" $SU "VBoxHeadless —startvm $WinSRV2008R2 > /dev/null 2>&1 &" echo "done." ;; restart) $SU "VBoxManage controlvm $WinSRV2008R2 reset" ;; stop) $SU "VBoxManage controlvm $WinSRV2008R2 savestate" ;; stopacpi) $SU "VBoxManage controlvm $WinSRV2008R2 acpipowerbutton" exit 0 ;; *) echo "Usage: $N {start|restart|stop}" >&2 exit 1 ;; esac exit 0 правильно или еще что-то нужно изменить?
16/06/2013 - 13:53
Добрый день, интересная статья, но не могли бы помочь разобраться со скриптом название машини  #!/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 $WinSRV2008R2" $SU "VBoxHeadless —startvm $WinSRV2008R2 > /dev/null 2>&1 &" echo "done." ;; restart) $SU "VBoxManage controlvm $WinSRV2008R2 reset" ;; stop) $SU "VBoxManage controlvm $WinSRV2008R2 savestate" ;; stopacpi) $SU "VBoxManage controlvm $WinSRV2008R2 acpipowerbutton" exit 0 ;; *) echo "Usage: $N {start|restart|stop}" >&2 exit 1 ;; esac exit 0 правильно или еще что-то нужно изменить? - See more at: http://softnastroy.com/content/ustanovka-virtualbox-42-na-server-debian-squeeze-s-veb-interfeysom-phpvirtualbox-avtozapusk-virtualnyh-mashin.html#sthash.SI5KFZ4L.dpuf Добрый день, интересная статья, но не могли бы помочь разобраться со скриптом название машини  #!/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 $WinSRV2008R2" $SU "VBoxHeadless —startvm $WinSRV2008R2 > /dev/null 2>&1 &" echo "done." ;; restart) $SU "VBoxManage controlvm $WinSRV2008R2 reset" ;; stop) $SU "VBoxManage controlvm $WinSRV2008R2 savestate" ;; stopacpi) $SU "VBoxManage controlvm $WinSRV2008R2 acpipowerbutton" exit 0 ;; *) echo "Usage: $N {start|restart|stop}" >&2 exit 1 ;; esac exit 0 правильно или еще что-то нужно изменить? - See more at: http://softnastroy.com/content/ustanovka-virtualbox-42-na-server-debian-squeeze-s-veb-interfeysom-phpvirtualbox-avtozapusk-virtualnyh-mashin.html#sthash.SI5KFZ4L.dpuf Не нужно везде в скрипте менять, нужно было сменить только имя виртуальной машины в переменной  VM, то есть должно стать так:   #!/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="WinSRV2008R2" 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   Вот как-то так :)
8a8asik
16/06/2013 - 14:44
Спасибо большое за совет
8a8asik
16/06/2013 - 14:53
При добавлении в автозагрузку по инструкции получаю : update-rc.d: using dependency based boot sequencing insserv: warning: script 'K01virtualbox' missing LSB tags and overrides insserv: warning: script 'virtualbox' missing LSB tags and overrides  

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

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
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.