phpvirtualbox 4.1x в OpenSuse 12.1
Раздел : Программное обеспечение
Опубликовано -=FORWARD=- [12/12/2011]
Сегодня хочу рассказать как настроить phpvirtualbox 4.1x на новой версии операционной системы OpenSuse 12.1. phpVirtualBox - это веб интерфейс для нашей любимой виртуальной машины VirtualBox разрабатываемой фирмой Oracle и тем не менее VM VirtualBox остаётся бесплатной и не плохо обновляется, проблем (недоделок) всё меньше, а функционала всё больше. Веб интерфейс (phpVirtualBox) предоставляет практически тот же функционал управления что и стандартный фронтенд (GUI), но с одним большим плюсом - управляемая VirtualBox находится на удалённом (в смысле на расстоянии) компьютере. Кому будет полезна эта статья?
- студентам, системным администраторам и энтузиастам, которые свою рабочую машину превращают в сервер
- тем у кого нет специальных бекап серверов, но есть например файлопомойка или любой другой не сильно нагруженный серверок (компьютерок).
- практическое применение одно, такое же как и самой виртуальной машины.
Да не ограничит вас бог в фантазии! :)

Для установки и настройки веб интерфейса phpVirtualBox, нам потребуется установить и настроить Apache, PHP, VirtualBox и собственно сам интерфейс phpVirtualBox.

Так же, вдумчиво прочтите главную страницу проекта phpVirtualBox, ключевыми фразами должны стать "phpVirtualBox предназначено для замены стандартного интерфейса GUI” и "не предназначено для организации облаков”.

phpVirtualBox   phpVirtualBox   phpVirtualBox   phpVirtualBox   phpVirtualBox Web RDP   

Ссылки на необходимые сайты:
Официальный сайт phpVirtualBox http://code.google.com/p/phpvirtualbox
Официальный сайт VirtualBox https://www.virtualbox.org
Официальный сайт OpenSuse http://www.opensuse.org/ru
Русскоязычное сообщество OpenSuse http://open-suse.ru
Сайт, репозиторий Packman http://packman.links2linux.org
Устанавливал phpVirtualBox на новую систему OpenSuse 12.1 - наконец-то решил расстаться с 11,2 :).
Перед установкой VirtualBox нужно убедится что в системе присутствуют kernel-syms и dkms (имеется в репозитории пакмана), а так же не забываем о gcc, make, kernel-suorce. VirtualBox устанавливается не из репозитория, а скачивается с сайта в виде rpm пакета VirtualBox non OSS (не опенсорс). https://www.virtualbox.org/wiki/Linux_Downloads Так же на официальном сайте скачиваем пакет расширений для VirtualBox, если нужно заюзать USB 2.0 или загрузку по PXE.

zypper ref
zypper in dkms kernel-syms gcc make kernel-suorce
# сопутствующие пакеты тоже ставим

Если вы установили VirtualBox до того как установили DKMS, то нужно установить драйвер VirtualBox`а "vboxdrv”.

/etc/init.d/vboxdrv setup

ошибки с драйвером можно увидеть в логах

cat /var/log/vbox-install.log
# или
dmesg |grep vbox

Дальше нужно установить и настроить апач (Apache) + пхп (php) или LAMP, я это делал через Яст (yast) так что команду установки не назову. Для работы phpvirtualbox 4.1x требуется php5-soap (PHP5 Extension Module), в набор LAMP это расширение не входит, так что юзаем поиск в ясте или

zypper in php5-soap

Что бы задействовать php-soap нужно раскомментировать строку в php.ini

# Открываем настройки php.ini, раскомментируем строку
extension=php_soap.dll

Cкачиваем с офф. сайта phpvirtualbox архив. Создаем директорию для скриптов phpvirtualbox, например /srv/vbox/ идем в настройки апача, создаём алиас на диекторию и даём права.

Alias /vbox "/srv/vbox/"


Allow from all

Order Allow,Deny

Directory>

Или можно просто сложить скрипты в директорию /srv/www/htdocs/

После установки, идём в яст и ставим режим запуска "http сервера” вместе с системой,
Перезагружаем апач.

/etc/init.d/apache2 restart

Прописываем /srv/vbox/config.php

var $username = 'имя пользователся (не рута) (из группы vboxusers)'
var $passwords = 'пароль'
var $language = 'ru' # русский фейс
var $noAuth = true # раскомментируем что б не вводить логин:пароль, просто для удобства настройки

для версии скрипта 4.1.х выполняем от рута

VBoxManage setproperty vrdeauthlibrary default
VBoxManage setproperty websrvauthlibrary default

это есть в вики, запускаем сервис vboxwebsrv, выполняем от рута

/usr/bin/vboxwebsrv --background -H localhost -p 18083

открываем в браузере и наслаждаемся :)

Если мы хотим как-то автоматизировать процесс запуска web-морды и даже какой-то из виртуалок, то нам нужно:

Обеспечить автоматический запуск vboxwebsrv.
Обеспечить автоматический запуск какой-то из виртаульных машин.

Делается это так - создаются скрипты запуска (мне так удобно):
/etc/init.d/MeAutoRun1 - выставляем на него права на запуск
/etc/init.d/MeAutoRun2 - выставляем на него права на запуск


##################### MeAutoRun1 ##############
#!/bin/bash
### BEGIN INIT INFO
# Providers: -=forward=-
# Default-Start: 3 5
# Default-Stop:
# Short-Description: запускаю vboxwebsrv (3 5 init)
# Description: запуск vboxwebsrv на 3м и 5м ините
### END INIT INFO
/usr/bin/vboxwebsrv --background -H localhost -p 18083

################### MeAutoRun2 ###############
#!/bin/bash
### BEGIN INIT INFO
# Providers: -=forward=-
# Default-Start: 3 5
# Short-Description: Start me Virtual mashine (3 5 init)
# Description: Запускаю свою виртаулку в фоне
### END INIT INFO
vboxmanage startvm test1 --type headless

Устанавливаем через яст или через chkconfig уровни запуска своих скриптов 3 и 5. Скидываем симлинки на них, например, в директорию /auto/ чтобы не искать в следующий раз. Но для того чтобы всё отрабатывало без ошибок нужно запускать свои скрипты позже чем стартует /etc/init.d/vboxdrv … идём в директории

/etc/init.d/rc3.d
/etc/init.d/rc5.d

и перемещаем свои скрипты позже по уровню запуска, с помощью цифр в начале названия файла (линка), например у меня было так:

S04vboxdrv
S05vboxballoonctrl-service
S05vboxweb-service

а свои скрипты я переместил ниже (начинались они с S05, но чисто по букворяду запускались раньше vboxdrv)

S06MeAutoRun1
S06MeAutoRun2

Источник: http://f1.od.ua