Ref T2015. This implements support for allocating build hosts on a remote machine with libvirt. It basically supports dynamic allocation of virtual machines on your own infrastructure (in contrast to AWS).
It's not too fiddly to get working; there's mainly some things around how host images are prepared (since you don't have AWS to do it for you). Specifically when preparing Windows build images, you need to release the DHCP lease and stop the network service before shutting down the machine you're going to use as the base image, by running the following commands at an administrative command prompt:
ipconfig /release net dhcp stop
The network topology also needs to be configured in a 'Routed' configuration (not NAT).