DSC should have an isolated mode which allows multiple concurrent configurations and Node localhost without altering the LCM
Here's the situation: We are an ISV and want to run some automated tests for our product, and we want them to run in an environment that we can just throw away and rebuild. We've got a bunch of Fitnesse tests, but we want an automated way to install the product and run the tests from a build definition. We want to be able to do several of these at once, with different builds pointing to different environments.
DSC has some awesome capabilities but there are some ways it falls down in this regard. The most critical of these is the system-wide way the LCM runs.
The configurations will run from the build server, and some of those actions will run on that machine rather than the target nodes. That's because those target nodes are ESX VMs which don't exist yet - part of the configuration will bring those VMs into existence.
I'd like a way to start the LCM in a separate process in PUSH mode on the local machine. It gets its own configuration which is separate to the system LCM. It emits its logging and diagnostic information to a place and in a format which can be configured (it'd be the output folder of the build, probaly text files).
This then performs the localhost actions to prep the VMs, deploy the certificate and pushes the required modules and resources. Once that's done, the normal Node $computername semantics can take over, though the rest of the process continues to be handled by this special isolated LCM.
What problems does this solve?
* It means we can push multiple configurations at once.
It means the state of the build server's system LCM does not affect our configurations
It means the state of the build server's system LCM is not affected by our configurations (so configurations pushed by IT are not broken by things we are doing)
It means all the information about what the configuration did is in the place we want it