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.
Working proof-of-concept implementation.
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
We do not guarantee support for the pugin, 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.