The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Виртуализация на FreeBSD с использованием VirtualBox + phpVirtualBox (virtual virtualbox freebsd)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: virtual, virtualbox, freebsd,  (найти похожие документы)
Автор: McSeem <maxim@kadyshev.com> Newsgroups: email Date: Mon, 12 Dec 2010 17:02:14 +0000 (UTC) Subject: Виртуализация на FreeBSD с использованием VirtualBox + phpVirtualBox Захотел настроить на своём сервере виртуализацию, для бесплатного VPS. Имею FreeBSD и не имею иксов. Остановил свой выбор на VirtualBox + phpVirtualBox. 1. Начинаем установку. Переходим в каталог с VirtualBox: # cd /usr/ports/emulators/virtualbox-ose Внимание! В FreeBSD портирована только OSE версия, в которой нет поддержки RDP. 2. Устанавливаем: # make && make install && make clean && rehash Т.к на сервере нет иксов, выбираем следующие опции: Options for virtualbox-ose 3.2.10_1 [X] DEBUG Build with debugging symbols [X] GUESTADDITIONS Build with Guest Additions [X] DBUS Build with D-Bus and HAL support [X] VDE Build with VDE support [X] VNC Build with VNC support [X] WEBSERVICE Build Webservice 3. Перед первым запуском VirtualBox-а необходимо установить модуль ядра: # kldload vboxdrv 4. Для того, чтобы модуль ядра загружался автоматически необходимо прописать его: # vboxdrv_load="YES" >> /boot/loader.conf 5. Запускаем ldconfig: # /sbin/ldconfig -m /usr/local/lib/virtualbox Теперь нам нужно как-то управлять нашим VirtualBox-ом. Для этого выберем Веб интерфейс. phpVirtualBox. 6. Устанавливаем phpVirtualBox: # cd /usr/ports/www/phpvirtualbox # make && make install && make clean Далее нам необходимо настроить файрвол, DNS сервер и WEB сервер. Данный пункт вам придется настроить самостоятельно в зависимости от ваших серверов. У меня используются ipfw, BIND и Apache. Apache настраиваем на директорию /usr/local/www/phpvirtualbox, именно тюда по умолчанию устанавливается phpvirtualbox. 7. Перезагружаем ipfw, Apache и BIND для применения изменений. 8. Переходим на страницу http://phpvirtualbox.mydomain.name Не запускается. Т.к. у меня PHP установлено без поддержки SOAP. 9. Удаляем PHP: # cd /usr/ports/lang/php5 # make deinstall 10. Ставим PHP с поддержкой SOAP: # cd /usr/ports/net/php5-soap # make && make install && make clean После данных действий у меня возникли некоторые конфликты, пришлось удалить несколько ранее установленных портов. После чего у меня и у тех кто у меня хостился возникли проблемы с отображением вебсайтов. Пришлось установить следующие порты: - php5-json - php5-mysql - php5-session - php5-sockets - php5-xml - php5-xmlrpc И подконфигурировать php.ini. У вас может список будет другим, а может и вообще не возникнет проблем. 11. После этого создаём пользователя для работы phpvirtualbox: # adduser phpvbuser 12. Для работы phpvirtualbox наш пользователь должен входить в группу vboxuser, создаём группу: # pw groupadd vboxusers 13. Добавляем пользователя в группу: # pw groupmod vboxusers -m phpvbuser 14. Правим конфиг любым удобным редактором: # vi /usr/local/www/phpvirtualbox/config.php в нём нас интересует 2 строки: var $username = 'phpvbuser'; var $password = 'пароль'; 15. Назначаем в собственность phpvbuser каталог с phpvirtualbox: # chown -R phpvbuser:vboxusers /usr/local/lib/virtualbox 16. Создаём скрипт для автозапуска phpvirtualbox после перезагрузки: # touch /usr/local/etc/rc.d/phpvirtualbox.sh 17. И правим любым удобным редактором: # vi /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 18. После этого запускаем phpvirtualbox: # su - phpvbuser -c vboxwebsrv -H localhost -p 18083 -t 0 -F /dev/null" Дальше, всё как в GUI: 19. Переходим на страницу, что настроили в Apache: 20. Cоздаём новую машину: 21. Вводим название и выбираем устанавливаемую ОС: 22. Выбираем объём оперативной памяти: 23. Выбираем существующий диск или создаём новый: 24. Выбираем тип жесткого диска, фиксированный размер или динамичиски увеличивающийся до определённого размера: 25. Задаём размер нашего диска: 26. Просматриваем суммарную информацию по выбранной конфигурации: 27. В списке виртуальных компьютеров выбираем наш компьютер и запускаем его: Т.к. нет поддержки RDP можно устанавливать заказанную систему на отдельном компьютере, настраивать удалённый доступ и подкладывать в новую виртуальную машину уже готовый жесткий диск, а дальнейшие действия пусть проводит клиент на своей виртуальной мишине. Но если кто-нибудь напортачит с виртуальной машиной, например "правильно" настроив файрвол\подмонтировав диск, или что-то в этом роде, так, что нет возможности подключиться удалённо по SSH\Telnet или другим удобным способом, то придётся этой машине настраивать консоль. Но в phpVirtualBox данной вкладки нет, т.к. мы установили версию OSE. Но мы собрали с поддержкой VNC. Поэтому для таких случаев для клиентов можно запускать на день доступ к консоли компьютера. 28. Делаем к примеру такой скриптик: # touch /usr/local/virtualboxvnc.sh 29. И правим любым удобным редактором: # vi /usr/local/virtualboxvnc.sh Добавляем в него примерно следующее: #!/bin/sh vpc="$1" port="$2" pass="$3" # Запускаем виртуальную машину под названием "vpc" (-s), с поддержкой # VNC (-n), на порту "port" (-m), c паролем для доступа к VNC "pass" (-o) su - phpvbuser -c "VBoxHeadless -s $vpc -n -m $port -o $pass" # Перезапускаем через сутки машину в обычном режиме (без VNC) echo su - phpvbuser -c \"VBoxManage controlvm $vpc reset\" | at now + 1 days exit 0 29. Запускаем скрипт с параметрами: имя виртуального компа, порт на котором будет слушать VNC, пароль для доступа к VNC: # /usr/local/virtualboxvnc.sh Client1_OpenSolaris 5500 password Не забываем открыть порт на файрволе для доступа с наружи к VNC серверу. 30. Сообщяем клиенту порт, пароль доступа и срок ребута машины. И он может подключаться любым клиентом VNC к заданному порту вешего сервера и работать консольно с виртуальной машиной:

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 00:46, 21/12/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Сообщяем"
    я все понимаю, но тему про написание "ча" и "ща" проходят в школе еще ...
     
  • 1.2, Ян Злобин (ok), 05:18, 21/12/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вместо того, чтобы ставить какую-то PHP управлялку, достаточно ввести пяток команд с консоли для того же эффекта.  Проверено - никаких конфигурилок не нужно.
     
     
  • 2.5, CHERTS (??), 09:15, 21/12/2010 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле как минимум 7 команд ;)

    Для запуска установки Ubuntu к примеру выполнить:

    VBoxManage createvm --name Ubuntu --ostype Ubuntu --register --basefolder /home/vbox
    VBoxManage modifyvm "Ubuntu" --memory 256 --acpi on --boot1 dvd --nic1 nat
    VBoxManage createhd --filename "Ubuntu.vdi" --size 10000 --remember
    VBoxManage storagectl "Ubuntu" --name "IDE Controller" --add ide --controller PIIX4
    VBoxManage storageattach "Ubuntu" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "Ubuntu.vdi"
    VBoxManage openmedium dvd /mnt/ubuntu-9.10-dvd-i386.iso
    VBoxManage storageattach "Ubuntu" --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /mnt/ubuntu-9.10-dvd-i386.iso

    Потом запускаем в фоне:

    /usr/bin/nohup /usr/local/bin/VBoxHeadless --startvm Ubuntu --vnc --vncport 2222 --vncpass 1234567890 &

     
     
  • 3.6, Ян Злобин (ok), 09:21, 21/12/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > На самом деле как минимум 7 команд ;)

    Ну семь - суть от этого не меняется.  Как раз на днях это делал.


     

  • 1.3, тигар (ok), 07:42, 21/12/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "3. Перед первым запуском VirtualBox-а необходимо установить модуль ядра:
    "
    команда kldload _грузит_ модуль ядра, если что.

    и еще, а раскажите пожалуйста для чего Вы ldconfig зовете в п.5

     
  • 1.4, Mafk (?), 08:40, 21/12/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пункт 9. совершенно не нужен, достаточно было пункта 10, и небыло бы проблем с сайтами. Так вы установите модуль php5-soap в установленный php5, и он сам себя пропишет в extensions.ini . Да да, они автоматически прописываются в /usr/local/etc/php/extensions.ini а не в php.ini (какая версия FreeBSD использовалась?). Другое дело, если необходимо обновление версии PHP, тогда необходимо было проследить, чтобы все преждние расширения были удалены вместе с php5.
     
  • 1.7, pavlinux (ok), 13:40, 14/03/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > var $username = 'phpvbuser';
    > var $password = 'пароль';

    мож надо

    var $username =  hash('md5', "34DVFsfhyUFdfgfs");
    var $password =  hash('md5', "VFunnio8sdBeuw7~");

     
     
  • 2.8, Аноним (-), 10:41, 05/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Нет
     
     
  • 3.9, pavlinux (ok), 07:40, 06/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет

    Да

     

  • 1.10, 999 (ok), 00:30, 24/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    чего-то недопонимаю.
    это только у меня логин-пароль при входе на вебморду запрашивает..?
     
     
  • 2.11, 999 (ok), 00:39, 24/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ясно, проехали.)))
     
     
  • 3.15, McSeem (?), 00:41, 14/12/2012 [^] [^^] [^^^] [ответить]  
  • +/
    по умолчанию username: admin, password: admin, но это в текущих версиях, когда писалась статья не было пароля, у себя делал через .htaccess
     

  • 1.12, 999 (ok), 04:03, 24/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    при попытке залогиниться получаю Error Fetching http headers (http://127.0.0.1:18083/) и в лог
    (vboxwebsrv), uid 1003: exited on signal 11
    сервис убивается. куда копать подскажите?
     
     
  • 2.13, 999 (ok), 04:26, 24/09/2012 [^] [^^] [^^^] [ответить]  
  • +/
    браузер показывает это
    Exception Object
    (
        [message:protected] => Could not connect to host (http://127.0.0.1:18083/)
        [string:Exception:private] =>
        [code:protected] => 64
        [file:protected] => /usr/local/www/phpvirtualbox/lib/vboxconnector.php
        [line:protected] => 187
        [trace:Exception:private] => Array
            (
                [0] => Array
                    (
                        [file] => /usr/local/www/phpvirtualbox/lib/auth/Builtin.php
                        [line] => 45
                        [function] => connect
                        [class] => vboxconnector
                        [type] => ->
                        [args] => Array
                            (
                            )

                    )

                [1] => Array
                    (
                        [file] => /usr/local/www/phpvirtualbox/lib/ajax.php
                        [line] => 119
                        [function] => login
                        [class] => phpvbAuthBuiltin
                        [type] => ->
                        [args] => Array
                            (
                                [0] => admin
                                [1] => admin
                            )

                    )

            )

        [previous:Exception:private] =>
    )

     
     
  • 3.14, McSeem (?), 15:06, 13/12/2012 [^] [^^] [^^^] [ответить]  
  • +/
    что говорит
    su - pvb -c "vboxwebsrv -t 0 -F /dev/null"
    ?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру