Jenkins : VMware plugin

Plugin Information

No information for the plugin 'vmware' is available. It may have been removed from distribution.

This plugin is up for adoption. Want to help improve this plugin? Click here to learn more!

This plugin allows you to start a VMware Virtual Machine before a build and stop it again after the build completes.

This plugin is unmaintained. Significant changes were made in 2008-2009, but they were not completed or released. This plugin may be deprecated and removed from the Update Center if a new maintainer does not volunteer.

Configuring the VMware Plugin

  1. Install VMware VIX on the Hudson Server (Currently the plugin only works with VMware Server, the recommended version of VMware VIX for use with VMware Server is VMware VIX 1.0)
  2. Install the vmware Hudson plugin.
  3. You need to configure the VMware hosts in the Hudson System Configuration:
  4. Enable the "VMware Server VIX Virtual Machine Activation" option in the Build Environment for your Job.
  5. Configure the required options

Meaning of parameters:

  • Path to VMware VIX Libraries - this is the path to the directory containing the vix shared libraries / DLL
  • Host - This is the IP address or DNS name of the machine running VMware Server
  • Username - This is the username used to login to the machine running VMware Server
  • Password - This is the password used to login to the machine running VMware Server
  • Port - This is normally 902.  It is the port on the machine running VMware Server that VMware VIX should attempt to connect on
  • VMX Config File - This is the virtual machine to control.  Note: it must be registered in VMware Server in order to control it.
  • Pre-build - What to do with this virtual machine before starting the build.
  • Post-build - What to do with this virtual machine after the build completes.


Here is an example deployment diagram:

Environment Variable Injection

If you are running in a DHCP or other dynamic IP address assignment network and you do not have control over DNS servers, or if you are running Guest operating systems that do not work with dynamic DNS, it may not be possible to know what the IP addresses of the VMs you are running are.

The VMware plugin can help you.

Have the guest machine make a HTTP GET request of the following URL:http://_yourhudsonserverurl_/plugin/vmware/set?name=BLAH
This will set the environment variable BLAH to the IP address of the last machine to make the GET request.

If your machine is working through a proxy server, you can usehttp://yourhudsonserverurl/plugin/vmware/set?name=BLAH&override=
To clear an IP address use the URL
And finally, if your guest machine needs to link itself up with other guest machines, the URLhttp://yourhudsonserverurl/plugin/vmware/query?name=BLAH
will return the last IP address registered with the name BLAH 

Version History

Version 0.8 (09/04/2008)

Version 0.6 (04/12/2007)

  • Adds the ability to cause the build to wait until VM has reported it's IP address via the HTTP GET mechanism introduced in 0.5 

Version 0.5 (03/12/2007)

  • Now provides a mechanism to feed VM ip addresses into the build environment.  

Version 0.4.0 (07/11/2007)

  • Synchronizing with the latest version of the JNA library. 

Version 0.3 (23/10/2007)

  • Updated plugin internal documentation to remove WARNINGS as these are now redundant

Version 0.2 (01/10/2007)

  • First Alpha release. 

Version 0.1 (28/09/2007)

  • Initial (pre-alpha) release. WARNING! there are issues with individual jobs hanging if VMware VIX looses connectivity with the VM while waiting for it to start up.  It is not recommended to use this plugin on a Hudson instance that cannot be restarted (To free up the job.  i.e. the job will sit  there until the JVM is restarted. VIX is a native library, and the Hudson JVM cannot kill the thread that VIX starts to wait for the VM to start.  The next version will use timeouts, or use a Java thread to allow Hudson to kill a Job).


vmware-setup.gif (image/gif)
deployment-diag.gif (image/gif)
job_config.gif (image/gif)
global_config.gif (image/gif)