Cloud-VMWare plugin

Skip to end of metadata
Go to start of metadata

General Info

Vendor JetBrains
License Apache 2.0
Type free, open-source

Plugin Description

This plugin provides an implementation of TeamCity cloud support for VMWare Player (TeamCity comes bundled with Amazon EC2 support).
It is meant to be both a useful tool for small teams and example of TeamCity cloud API usage.

The plugin allows to launch one of pre-configured VMWare virtual machines based the build queue on the TeamCity server.

The plugin has server part (installed on TeamCity server) and client part (installed on each physical machine to run virtual machines). The client part communicates with installed VMWare Player using VMWare VIX API.

Plugin Development Status

Working proof-of-concept implementation.

Download

From demo server:
TeamCity 7+ compatible build
TeamCity 6.5 compatible build

TeamCity Versions Compatibility

TeamCity 6.5+

Usage

First, install the plugin on TeamCity server.
Then, open 'TeamCity | Administration | Settings | Clouds' web UI page and create a cloud profile with "VMWare" type.

For each physical machine that should be able to run virtual images:

  • Install the latest VMWare Player and latest VMWare VIX API. Installed VMWare player and VMWare VIX should have the corresponding versions (same build number). You can usually download VIX API from VMWare Player download page.
  • Download and unpack TeamCity VMWare plugin client application from 'My Settings and Tools' of the TeamCity server.
  • create folder for virtual machines and create as much virtual machines as necessary
  • ensure each virtual machine have latest VMWare tools installed
  • ensure each virtual machine has TeamCity agent installed and the agent is started on machine boot. See other agent requirements.
  • start each virtual machine to ensure that there are no dialog boxes shown by VMWare player while machine starting.
  • create the following configuration file for each machine with name <something>-image-info.xml and put it into the directory containing vmware image directories:
    VMWare Player used to fail with cryptic error if path to an image contains subst drive
  • start TeamCity VMWare client with:
By default it allows running only one VM on a host machine. Use /maxInstances:<number> to change the default value.
It's a good idea to backup virtual machine before running it with TeamCity to be able to revert the machine's state back to initial state.
At the beginning TeamCity will start all your virtual machines to fetch agent information. You may stop your virtual machine from TeamCity Clouds tab

The plugin was tested with VMWare Player 3.0.1-227600 and VMware VIX 1.8.2-227600 on Windows

Feedback

If you believe you've faced a bug: Issue Tracker (project: TeamCity)
If you want to ask a question or discuss: Forum

We do not guarantee support for the pugin, but will be happy to receive feedback on it.

Development links

Please note that TeamCity cloud API is still in development and it may change a lot in future TeamCity versions.

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Aug 11, 2012

    Does this plugin support multiple agents on one VM?

    1. Nov 13, 2013

      Any kind of cloud integration is not designed to work with multiple agents on the same VM. You might want to try, but most likely it won't work as supposed and there can be side effects like problem with auto-authorization, double starts, extra agent licences consuming, etc.

  2. Nov 13, 2013

    Some feedback from forum:

    We use this cool feature to test our application on different OS without having to spend our TeamCity licenses on dedicated machines.

     

    There are several tests we perform:

    • Install on a clean environment
    • Install on top of a previous release
    • Install under different versions of a "hosting software" (our software can be registered under this "hosting software")

     

    A cool feature would be to have snapshots. What I currently have to do every day before the tests are run is to clean up the VMWare files with a script so that they are virgin again.

     

    So far, this approach just worked fine and since it is a proof of concept, I am more than happy with this.