Ha letagadnám, akkor is mindenki tudná, hogy lusta vagyok, különösen olyan dolgokban, amiket esetleg lehet automatizálni vagy egyszerűbben kezelhetővé tenni. Van pár kiszolgáló, ahol praktikussági okokból VirtualBoxot használok virtualizálásra (Xen és OpenVZ esetén nem térült volna meg a befektetett idő, az LXC meg szimplán kuka).
Ha új virtuális gépet szerettem volna készíteni, akkor eddig kénytelen voltam végigszöszölni a „VBoxManage creatvevm...” utat. Hála a phpVirtualBoxnak, csak pár kattintás, és kész az új virtuális gép :)
Telepítsünk!
1. A phpVirtualBox működéséhez mindenképpen szükségünk van valamilyen PHP-t futtatni képes webszerverre. Ez lehet apache, nginx, lighttpd, bármi. Fontos, hogy telepítsük a php-soap csomagot (vagy legyen soap flag-je a PHP-nak)!
2. Telepítsük a VirtualBoxot. A Debian és az RPM alapú disztribúciók esetén lehetőségünk van felvenni az adott tárolót a tárolóink közé, minden szükséges információ megtalálható itt: http://www.virtualbox.org/wiki/Linux_Downloads
Ubuntu:
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - && apt-get update && apt-get install build-essential virtualbox-4.0
Gentoo esetén a VirtualBox benne van a portage fában. Arch és licensz (PUEL) mask van a Virtualbox csomagokon, ezeket kéretik eltávolítani.
/etc/portage/package.license fájlt egészítsük ki (vagy hozzuk létre) a következő tartalommal:
app-emulation/virtualbox-additions PUEL app-emulation/virtualbox-extpack-oracle PUEL
A /etc/portage/package.keywords állományba pedig a következő sorok kerüljenek:
app-emulation/virtualbox-modules ~amd64 vagy x86 app-emulation/virtualbox ~amd64 vagy x86 app-emulation/virtualbox-additions ~amd64 vagy x86 app-emulation/virtualbox-extpack-oracle ~amd64 vagy x86 # RDP miatt
Én a következő use flag-ekkel telepítettem a Virtualboxot:
additions extensions headless java sdk vboxwebsrv -alsa -doc -elibc_FreeBSD -opengl -pulseaudio -python -qt4 -vnc
Külön felhívnám a figyelmet a headless, vboxwebsrv java és sdk opciókra. Ha nem headless, akkor telepíti a GUI-t is, ez pedig nekünk nem kell. A vboxwebsrv miatt kell a java és az sdk flag is, ezek nélkül nem fordul le, nem mellesleg a vboxwebsrv-n keresztül kommunikál majd a PHP-s gui.
Telepítsünk végre:
emerge app-emulation/virtualbox app-emulation/virtualbox-modules app-emulation/virtualbox-additions app-emulation/virtualbox-extpack-oracle
A telepítés után az RDP miatt szükségünk van az Oracle kiegészítő csomagjára. Gentoo alatt már semmi dolgunk sincs, az települt. Más rendszereken azonban le kell tölteni a kiegészítő csomagot és telepíteni kell.
wget http://download.virtualbox.org/virtualbox/4.0.8/Oracle_VM_VirtualBox_Extension_Pack-4.0.8-71778.vbox-extpack && VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.8-71778.vbox-extpack
Hozzunk létre, vagy adjunk hozzá egy felhasználót a vboxusers csoporthoz. Ez azért fontos, mert a nevében fog futni a VirtualBox.
Adjunk hozzá egy új felhasználót.
useradd -G vboxusers -p vboxpass vboxuser
Vagy egy meglévő felhasználónak adjuk meg a futtatáshoz a jogokat.
gpasswd -a vboxuser vboxusers
Töltsük le valahova (ahol persze eléri a webszerver) a legfrissebb phpVirtualbox-ot innen: http://code.google.com/p/phpvirtualbox/downloads/list
Csomagoljuk ki, majd szerkesszük egy kicsit a config.php-t.
var = 'vboxuser'; // Felhasználó, aki nevében futtatjuk a virtualbox-ot var = 'vboxpass'; // Felhasználó jelszava. var = 'http://127.0.0.1:18083/'; //Gép IP címe, ahol fut a vboxwebsrv.
VBoxWebSRV konfigurálása
[Ubuntu]
Ahhoz, hogy az init script tudja, hogyan kell indítania a vboxwebsrv-t, szüksége van egy konfigurációs állományra a /etc/default könyvtárban virtualbox néven. Tartalma:
VBOXWEB_USER=vboxuser VBOXWEB_HOST=localhost VBOXWEB_PORT=18083 VBOXWEB_TIMEOUT=20 VBOXWEB_CHECK_INTERVAL=0
Ubuntu esetén a telepítés kész.
Elindítod (
/etc/init.d/vboxweb-service start
), megy, örülsz.
A [Gentoo] egy picit mókásabb:
Ahhoz, hogy a megadott felhasználó nevében fusson a VirtualBox, egy kis konfiguráció turkálásra van szükség.
A /etc/conf.d/vboxwebsrv állományhoz hozzá kell adni egy sort:
VBOXWEBSRV_USER="vboxuser"
A többi beállítást értelemszerűen (akár a fenti alapján) töltsd ki, jól kommentezett az állomány :)
A /etc/init.d/vboxwebsrv start része pedig így nézzen ki:
start() { #checkconfig || return $? ebegin "Starting VirtualBox WebService" start-stop-daemon --start --quiet --pidfile /var/run/vboxwebsrv.pid \ --background --make-pidfile --user --exec /usr/bin/vboxwebsrv \ -- -H -p -t -i eend $? }
Kész. Ha minden jól megy, akkor /etc/init.d/vboxwebsrv start
parancsra el kell, hogy induljon.
Már a célegyenesben vagyunk!
A telepített phpVirtualBox URL-jét írjuk be a böngészőbe. Pl. 127.0.0.1/phpvirtualbox
Az alapértelmezett név és jelszó: admin/admin. Ezt illik megváltoztatni valami bonyolultabbra. Ezt megteheted a File → Change Password menüpontban.
Fontos: Amikor RDP elérést akarsz a virtuális gépedhez, akkor mindig add meg a szerver IP címét és portját is! Ne tartományt (pl. 3389-4000), mert úgy nem fog működni.
Készen is vagyunk. Kedvcsinálónak álljon itt még pár kép: