Child pages
  • Cloud-VMWare plugin
Skip to end of metadata
Go to start of metadata

The plugin is deprecated and no longer supported. Please use VMware vSphere plugin

General Info




Apache 2.0


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 an example of the TeamCity cloud API usage.

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

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

Plugin Development Status

Working proof-of-concept implementation.


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

TeamCity Versions Compatibility

TeamCity 6.5+


  1. Install the plugin on TeamCity server.
  2. Open the TeamCity | Administration | Server Administration | Agent Cloud 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. The installed VMWare player and VMWare VIX should have corresponding versions (the same build number). You can usually download the VIX API from VMWare Player download page.
  • Download and unpack the TeamCity VMWare plugin client application: in the top right corner of the TeamCity web UI, click the arrow next to your username, and select My Settings and Tools.
  • create a folder for virtual machines and create as many virtual machines as necessary
  • ensure each virtual machine has the latest VMWare tools installed
  • ensure each virtual machine has a TeamCity agent installed, and the agent is launched on the machine boot. See other agent requirements.
  • start each virtual machine to ensure that there are no dialog boxes shown by VMWare player while the machine is starting.
  • create the following configuration file for each machine named <something>-image-info.xml and put it into the directory containing vmware image directories:

    VMWare Player may fail with a cryptic error if the 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 a virtual machine before running it with TeamCity to be able to revert the machine back to its initial state.


At the beginning TeamCity will start all your virtual machines to fetch agent information. You may stop your virtual machine from the TeamCity Clouds tab

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


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 plugin, but will be happy to receive feedback on it.

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

  • No labels


  1. Does this plugin support multiple agents on one VM?

    1. 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. 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.