Иногда возникает острая необходимость работать в Linux-среде, в частности у меня накопился ряд приложений, которые минимизирует мои временные затраты в широком спектре задач. К сожалению, далеко не все они работают под FreeBSD. Это преимущественно предкомпилированные deb-пакеты, исходники к которым если и есть, то не собираются. Разумеется, что вся рабочая среда должна быть гибкой, масштабируемой, портируемой, кроссплатформенной и доступной из любой точки нашей планеты. Соответственно это должны быть виртуальная машина, наиболее подходит virtualbox. В первой части поговорим о создании сервера virtualbox на машине с установленным FreeBSD.
Итак, для начала надо иметь исходники системы в директории /usr/src. Если система amd64, то необходимо еще и собрать 32-ухразрядные библиотеки:
# cd /usr/src
# make build32 install32
# /etc/rc.d/ldconfig restart
Далее собираем 2 порта: сам сервер и модуль ядра:
# cd /usr/ports/emulators/virtualbox-ose && make install clean
# cd /usr/ports/emulators/virtualbox-ose-kmod && make install clean
Для сервера надо выбрать практически все пункты в конфигурационном меню. Сборка будет долгой и нудной, но должна закончиться успешно.
Для управления сервером рекомендую использовать web-интерфейс, для чего ставим порт phpvirtualbox
# cd /usr/ports/www/phpvirtualbox && make install clean
Далее следует создать пользователя, ну например phpvbuser. К php предъявляются некоторые требования, а именно должны быть установлены следующие расширения php:
•php5-json
•php5-mysql
•php5-session
•php5-soap
•php5-sockets
•php5-xml
•php5-xmlrpc
На моем сервере эти расширения установлены и так, вам, возможно, придется ставить их. На этом с компиляции закончено, переходим к настройке. В файл /usr/local/www/phpvirtualbox/config.php добавляем строки настройки аутентификации:
/* Username / Password for system user that runs VirutalBox */
var $username = 'phpvbuser';
var $password = 'passwd';
var $location = 'http://127.0.0.1:18083/';
Где passwd - пароль созданного нами пользователя phpvbuser, которому также даем права к директории сервера:
# chown -R phpvbuser:vboxusers /usr/local/lib/virtualbox
Создаем скрипт автоматического запуска сервера /usr/local/etc/rc.d/phpvirtualbox.sh
следующего содержания:
#!/bin/sh
echo -n 'phpVirtualBox daemon'
case "$1" in
start)
su - phpvbuser -c "vboxwebsrv -t 0 -F /dev/null"
;;
stop)
killall vboxwebsrv
killall VBoxSVC
killall VBoxXPCOMI
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0
Выполняем настройку конфигурации сервера и запускаем его:
# su - phpvbuser -c "VBoxManage setproperty websrvauthlibrary null"
# su - phpvbuser -c "vboxwebsrv -H 127.0.0.1 -p 18083 -t 0 -F /dev/null"
Теперь через браузер можно получить доступ к консоли управления
Ура, товарищи. Празднуем промежуточную победу и готовимся к новым боям за дело виртуализации.