personal trial project for vmfest
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Just a personal trial project for vmfest.

Instruction below includes:

  • clone a vdi
  • manipulate image of the vdi on repl.


Virtual box server setup

# virtual box version must be VirtualBox 4.0x
$ VBoxManage -v

# turn off authentication
$ VBoxManage setproperty websrvauthlibrary null

# start virtual box server
$ vboxwebsrv -t0

vmfest setup

Clone project

$ git clone

Clone image and create meta file as vmfest preparation.

$ mkdir -p ~/vmfest/models

# clone your vdi image dev-base.vdi
# UUID is produced when cloning vdi is completed.
$ VBoxManage clonehd /path/to/dev-base.vdi ~/vmfest/models/dev-base.vdi

ç # keep uuid in file.
$ echo "PRODUCED_UUID" > ~/vmfest/models/dev-base.vdi.uuid

# show hdds with uuid.
$ vboxmanage list hdds

# copy meta template file. The template file is for centOS 5.5(64bit). 
$ cp conf/dev-base.meta.tpl ~/vmfest/models/dev-base.meta

# edit uuid, username, password and sudo-password in dev-base.meta
$ vim ~/vmfest/models/dev-base.meta

The meta file is based on pallet.compute.vmfest doc .

Start REPL

$ lein deps
$ lein repl

Install models

(use 'vmfest.manager)
(use 'vmfest.virtualbox.image)

;; create a connection to the virtual box server
(def my-server (server "http://localhost:18083"))

;; install vdi
(setup-model "file://{HOME_DIR}/vmfest/models/dev-base.vdi" my-server)

;; confirm the vdi is installed correctly.

;; define instance of image.
;; args of instance are 'server' 'displayed name on virtualbox' 'image' basic-config
(def my-machine (instance my-server "my-machine" :vmfest-dev-base :micro))

(start my-machine)
(pause my-machine)
(resume my-machine)

;; shut down OS
(stop my-machine) 

;; turns off the machine
(power-down my-machine)

;; destroy the machine. All files will be deleted (irrecoverable)
(destroy my-machine)

;; list currently defined machines
(pprint (map as-map (machines my-server)))

When you attach already crated machine

(use 'vmfest.manager)
(use 'vmfest.virtualbox.image)
(def my-server (server "http://localhost:18083"))

;; "my-machine" is displayed name on virtualBox
(def my-machine (find-machine my-server "my-machine"))
(start my-machine)


  • move to pallet-vmfest
  • allow to specify local network which are NAT and internal network(host-only network)
  • doc: vmfest.clj