Headless Virtual Box på Ubuntu

Fra Millenium's Wiki
Spring til navigation Spring til søgning

Installer VirtualBox

redigér apt sources og tilføj virtualbox repository:

sudo nano /etc/apt/sources.list

tilføj:

deb http://download.virtualbox.org/virtualbox/debian precise contrib

download VirtualBox public key og installer den:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

opdatér databasen:

sudo apt-get update

og installér VirtaulBox:

sudo apt-get install linux-headers-$(uname -r) build-essential virtualbox-4.2 dkms

(dkms pakken sikrer at VirtualBox's host kernel moduler opdateres hvis Linux kernel versionen ændres.)

for at kunne tilslutte vha. fjernskrivebord, skal VirtualBox udvidelsespakke installeres.

hent den tilhørende udvidelsespakke fra dette link: https://www.virtualbox.org/wiki/Downloads og installér den:

wget http://download.virtualbox.org/virtualbox/4.2.4/Oracle_VM_VirtualBox_Extension_Pack-4.2.4-81684.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.4-81684.vbox-extpack

tilføj en bruger, der skal køre VirtualBox

sudo adduser vboxuser
sudo adduser vboxuser vboxusers

VirtualBox er nu installeret og klar til bug.

Tilføj en virtuel maskine

for hjælp skriv:

VBoxManage --help

log ind som vboxuser:

su vboxuser
cd ~

i dette eksempel laves en Windows XP lite med 1GB ram og 10GB harddiskplads. (image-filen ligger i /home/vboxuser/WinXP_Small.iso)

VBoxManage createvm --name "Windows XP Lite" --register
VBoxManage modifyvm "Windows XP Lite" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
VBoxManage createhd --filename WindowsXP_Lite.vdi --size 10000
VBoxManage storagectl "Windows XP Lite" --name "IDE Controller" --add ide
VBoxManage storageattach "Windows XP Lite" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium WindowsXP_Lite.vdi
VBoxManage storageattach "Windows XP Lite" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium WinXP_Small.iso

maskinen kan nu startes:

VBoxHeadless --startvm "Windows XP Lite"

log på maskinen vha. fjernskrivebord (gør det hurtigt for at fange boot-up)

maskinen kan styres således:

VBoxManage controlvm "Windows XP Lite" pause
VBoxManage controlvm "Windows XP Lite" reset

Installer VboxTool

installer unzip

sudo apt-get install unzip

Installer vboxtool http://vboxtool.sourceforge.net/

hent seneste version (ver. 0.5 2012-05-01) og pak den ud.

wget http://freefr.dl.sourceforge.net/project/vboxtool/vboxtool/0.5/vboxtool-0.5.zip
unzip -d vboxtool vboxtool-0.5.zip

kopiér main scriptet vboxtool til /usr/local/bin/ og gør det eksekvérbart

sudo cp vboxtool/script/vboxtool /usr/local/bin/
sudo chmod +x /usr/local/bin/vboxtool

kopiér init scriptet vboxtoolinit til /etc/init.d/ og gør det eksekvérbart

sudo cp vboxtool/script/vboxtoolinit /etc/init.d/
sudo chmod +x /etc/init.d/vboxtoolinit

aktivér init scriptet

sudo update-rc.d vboxtoolinit defaults 99 10

for at fjerne vboxtoolinit fra autostart, kør følgende: sudo update-rc.d -f vboxtoolinit remove

lav en mappe /etc/vboxtool

sudo mkdir /etc/vboxtool

lav en konfigurationsfil

sudo nano /etc/vboxtool/machines.conf

skriv <session-name>,<VRDP-port> i filen, hvor <session-namez> er navnet på den virtuelle maskine, der skal styres og <VRDP-port> er den remote desktop port den kører (dette kan være tomt).

"Windows 7 32bit",3389

lav endnu en konfigurationsfil

sudo nano /etc/vboxtool/vboxtool.conf

og skriv vbox_user='<user name>', hvor <user name> er brugernavnet på den bruger, der kører Virtualbox.

vbox_user='vboxuser'

Installer phpVirtualBox

For at kunne styre VirtualBox fra en browser kan phpVirtualBox installeres.

gå til webserver roden og lav en mappe til phpVirtualBox:

cd /var/www/html
sudo mkdir virtualbox
cd virtualbox

hent pakken og pak den ud(brug den version der passer til installationen):

sudo wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.2-4.zip
sudo unzip phpvirtualbox-4.2-4.zip

omdøb config.php-example til config.php og editér den:

sudo mv config.php-example config.php
sudo nano config.php

in config.php ændres username og password:

var $username = 'vboxuser';
var $password = 'password for vboxuser';

servicen startes:

sudo service vboxweb-service start

VirtualBox laver et init script (/etc/init.d/vboxweb-service) som kan bruges til at starte og stoppe vboxwebsrv. For at vboxweb-service kan starte vboxwebsrv, skal /etc/default/virtualbox filen findes.

lave denne fil:

sudo nano /etc/default/virtualbox

i denne fil skal der som et minimum være følgende (brugernavnet skal være det samme som kører VirtualBox maskinen):

VBOXWEB_USER=vboxuser

Hvis vboxwebsrv ikke kører på samme server som webserveren, skal VBOXWEB_HOST udfyldes med IP-adressen på webserveren.

følgende indstillinger kan laves i denne fil:

Indstilling Beskrivelse
VBOXWEB_USER The user as which vboxwebsrv will run.
VBOXWEB_HOST The host to bind to (localhost).
VBOXWEB_PORT The port to bind to (18083).
VBOXWEB_TIMEOUT Session timeout in seconds; 0 = disable timeouts (300).
VBOXWEB_CHECK_INTERVAL Frequency of timeout checks in seconds (5).
VBOXWEB_THREADS Maximum number of worker threads to run in parallel (100).
VBOXWEB_KEEPALIVE Maximum number of requests before a socket will be closed (100).
VBOXWEB_LOGFILE Name of file to write log to (no file).
VBOXWEB_DIR The location of the vboxwebsrv binary (/usr/lib/virtualbox).

når denne fil er oprettet, kan vboxwebsrv startes og stoppes:

/etc/init.d/vboxweb-service start
/etc/init.d/vboxweb-service stop

opret en virtual server (gøres nemmest i Webmin). og åbn siden i en browser (editér hosts filen på klientmaskinen hvis det er nødvendigt).

Installer Guest additions

Når windows installationen er fuldført, kan Guest Additions installeres.

hent den pakke, der passer til installationen her: http://download.virtualbox.org/virtualbox/

wget http://download.virtualbox.org/virtualbox/4.1.22/VBoxGuestAdditions_4.1.22.iso

gå til webinterfacet og mount iso filen.

i den virtuelle maskine skulle cd'en være synlig. kør CD'en og følg instruktionerne.