Direct SA1 Links
Etics Portal - Etics Web - EticsAgendas - ETICS 2 SA1 Savannah - SA1Actions (in Savannah) , SA1 Internal

VM Bootstrapper


The VMB (Virtual Machine Bootstrapper), now known as VMLoader (Virtual Machine Loader) is a software mechanism that downloads a virtual machine image, deploys and starts the virtual machine, and finally executes one or more specified commands inside the virtual machine. When the task is completed the output of the commands and a set of user-defined files are sent back to the physical machine and made available as a single compressed file.

The goal is to provision virtual machines on demand to perform automated tasks in predefined, reproducible environments. The virtual machine can be destroyed upon completion or saved with the output for further offline analysis. The bootstrapper has a generic design supporting different hypervisors and the currently supported hypervisors are Xen, KVM and VMware. The VMB has been designed as the ETICS on-demand virtualization mechanism to perform reproducible software build and test operations on generic distributed infrastructures. However, it is not ETICS-specific and it can be used as a stand-alone tool to implement automated on-demand virtualization systems.

Write here a description of the goals input and output and completion of the task and topics

Useful Links

Links to document, attach material needed, external resources, example, etc.

Requirements, Ideas, Constraints etc

Any requirement and from where it comes

  • item
  • item

Open Issues


General status and current versions, tags, configuration.

Ongoing work, etc

Future improvements


  • Determine the worker node architecture which kvm is run on in order to let it append the string to the execution binary -> "/usr/local/bin/qemu-system" turns into "/usr/local/bin/qemu-system-x86_64"
  • Unregister a virtual machine after execution -> Invoke the stop-phase when exiting the VMLoader from vmloader.file.FileTailer
  • Change the execution of some phases and some from Runtime.getRuntime().exec(cmd)" -> Use the ProcessBuilder instead of Runtime.
  • Change the ServiceExecutor and CommandExecutor to be able to run NT commands" -> The xml attribute "operatingsystem" is made available in the ServiceExecutor in the agent and must simply be utilized properly.
  • Enable the user to specify which subdirectory of the build output that will be packaged into the tar.gz" -> The parameter should be passed from command line, sent over network and set in the agent for processing in the GZIPHandler.
  • Add the Xen commands to the XML-configuration file" -> Take the commands needed to launch a Xen virtual machine and replace (the path imagename and so forth) the respective keywords.
  • Add the loading of NT Serial in the agent" -> The external library for sending strings to the serial port must be loaded properly for use in the VirtualMachine class. (Beware, booting an NT-based virtual machine on DEBUG mode might cause it to block access to COMX when the serial library tries to access it).
  • NAT-networking tutorial on KVM

-- OeyvindValenSendstad - 04 Aug 2009

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf 035E_VN_Architecture.pdf r1 manage 5036.9 K 2009-08-05 - 16:44 OeyvindValenSendstad Developer - VMLoader Architecture document
PDFpdf 035E_VN_Design.pdf r1 manage 2553.9 K 2009-08-05 - 16:46 OeyvindValenSendstad Developer - VMLoader Design document
Compressed Zip archivezip r1 manage 7841.1 K 2009-10-21 - 16:10 OEyvindValenSendstad  
Edit | Attach | Watch | Print version | History: r16 < r15 < r14 < r13 < r12 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r16 - 2010-11-11 - MatthiasStein
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    ETICS All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback