Headless Virtualbox – starte VM’er automagisk :)

Hvis man har en headless (intet grafisk interface) virtualbox server er der efter hvad jeg ved ikke nogen speciel smart indbygget måde at få systemet til selv at starte VM’erne efter hosten har været genstartet.

Jeg har i lang tid bare levet med at starte de virtueller maskiner manuelt efter genstart af hosten, men jeg har også glemt det et par gange, og det er irriterende at opdage at maskinen nu ikke har kørt i f.eks. 10 dage fordi der har været en genstart.

Derfor besluttede jeg mig for at finde en løsning, og jeg kom frem til nedenstående.

I mit crontab (for min virtualbox bruger) har jeg indsat følgende:

@reboot /home/vmuser/startvm.sh

Det gør at scriptet startvm.sh bliver kørt hver gang computeren starter op.

Scriptet startvm.sh ser ud som følger:


#!/bin/bash

echo `VBoxManage list vms | awk {‘ print $1 ‘} | grep \”\*\” | sed s/\”//g` > /home/vmuser/vmlist

sleep 2

for VM in `cat /home/vmuser/vmlist`; do
VBoxManage startvm $VM –type headless
sleep 30
done

exit 0

Den laver altså en fil hvor den lister navnene på mine virtuelle maskiner, og starter dem så en ad gangen med 30 sekunders mellemrum.

Med ovenstående script og opsætning skulle dine VM’er gerne starte op automatisk når din maskine bliver genstartet.

UPDATE

Jeg har ændret oenstående script så det bruger et array istedet for en fil til at køre navnene på mine VM’er igennem scriptet. Det ser nu således ud:

#!/bin/bash

sleep 30

ARRAY=(`VBoxManage list vms | awk {‘ print $1 ‘} | grep \”\*\” | sed s/\”//g`)

sleep 2

for i in ${ARRAY[*]}; do
VBoxManage startvm $i –type headless
sleep 30
done
exit 0

Jeg bruger sleep 30 i starten for lige at lade den starte alle services inden den forsøger at starte VM’erne, og jeg bruger sleep 30 i for løkken for at give den 30 sekunder mellem hver VM den starter op.

Ovenstående er testet og virker i mit setup.

Forlænge windows prøve periode.

Ofte kan man have brug for at teste et eller andet i et givent OS, det kune f.eks. være Windows 7 embedded standard (det er ihvertfald det jeg skal teste)

Som standard er der en 30 dages prøvepriode, når den er udløbet begynder computeren bl.a. selv at reboote hver anden time for ligesom at gøre opmærksom på at prøve perioden er udløbet.

Den periode kunne være rar at forlænge, og det kan man også med følgende fremgangsmåde:

Skiv “cmd” i search boksen i start menuen. Nu kan man højreklikke på programmet cmd.exe øverst i listen og vælge “kør som administrator”

Når kommando prompten er fremme skriver man følgende:

slmgr -rearm

Du vil nu blive bedt om at genstarte computeren, og der skulle nu gerne være 30 nye dage til at teste i.

Ovenstående procedure kan gennemføres 3 gange og man kan altså i alt få 120 dage til at teste i

HTTP proxy fra din shell.

Hvordan får man internet forbindelse gennem en shell når man befinder sig bag en HTTP proxy?

Den hurtige måde er et lave en “export” af http_proxy variablen. Det ser nogenlunde sådan her ud:

export http_proxy="http://proxyadresse:port"

Nu kan man kontrollere om det virker ved at skrive export i shellen, det skulle gerne give en liste med alle variabler der er sat, og nederst skulle der være en der ser sådan her ud:

declare -x http_proxy="http://proxyadresse:port"

Man kan selvfølgelig også tjekke ved at prøve at gå på nettet, f.eks med wget.

Ovenstående virker kun i den session man allerede er logget ind i, og kun for den bruger man er logget ind som.

En anden metode er at sætte export kommandoen ind i sin ~/.bashrc fil. Den vil nu blive kørt hver gang man logger ind, og altså være permanent for den bruger man laver den på.

Den kan laves permanent for alle brugere ved at ligge export kommandoen ind i /etc/bash.bashrc filen.

apt-get gennem HTTP proxy

For at få apt-get til at køre bag en HTTP proxy er det ikke nok at lave en export af http_proxy variablen. Der skal laves en apt.conf fil (hvis den ikke allerede eksisterer) i /etc/apt/ biblioteket.

Filen skal have en linie med følgende syntax:

Acquire::http::Proxy "http://proxyadresse:port";

Nu skulle du gerne kunne installere og opdatere dine programmer med apt-get.