OpenSuse 12.1 + Сегодня хочу рассказать как настроить
phpvirtualbox 4.1x на новой версии операционной системы
OpenSuse 12.1.
phpVirtualBox - это веб интерфейс для нашей любимой виртуальной машины
VirtualBox разрабатываемой фирмой
Oracle и тем не менее
VM VirtualBox остаётся бесплатной и не плохо обновляется, проблем (недоделок) всё меньше, а функционала всё больше. Веб интерфейс (
phpVirtualBox) предоставляет практически тот же функционал управления что и стандартный фронтенд (GUI), но с одним большим плюсом - управляемая
VirtualBox находится на удалённом (в смысле на расстоянии) компьютере. Кому будет полезна эта статья?
- студентам, системным администраторам и энтузиастам, которые свою рабочую машину превращают в сервер
- тем у кого нет специальных бекап серверов, но есть например файлопомойка или любой другой не сильно нагруженный серверок (компьютерок).
- практическое применение одно, такое же как и самой виртуальной машины.
Да не ограничит вас бог в фантазии! :)
Для установки и настройки веб интерфейса
phpVirtualBox, нам потребуется установить и настроить
Apache,
PHP,
VirtualBox и собственно сам интерфейс
phpVirtualBox.
Так же, вдумчиво прочтите
главную страницу проекта phpVirtualBox, ключевыми фразами должны стать "phpVirtualBox предназначено для замены стандартного интерфейса GUI” и "не предназначено для организации облаков”.
Ссылки на необходимые сайты:- Официальный сайт 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/"
# <Directory /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
открываем в браузере и наслаждаемся :)
# http://localhost/vbox/ или http://ip.ad.dr.es/vbox/
Если мы хотим как-то автоматизировать процесс запуска 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