I know TeamCity can auto-update its agents.
However, can it auto install software like the JDK as well?
I envisage specifying either a URL or uploading a file (option to have 2 for one install definition - a zip for Windows tar.gz for Linux).
Then TeamCity sends it out to all agents with instructions to unzip it in a dir in the agent directory.
Or alternatively in a directory that all agents on that box have access to so you don't install the same thing multiple times.
Maybe you have an option for agent local installs and server wide installs to provide the option of different agents on the same server using different JVMs.