Framework for provisioning virtual machines