1. A method for setting up, configuring, and customizing one or more virtual machines, the method performed at a computer system including one or more processors and data storage, the method comprising: accessing a virtual machine scenario definition file defining the characteristics of one or more virtual machines, the virtual machine scenario definition file comprising the data fields: Role, Machine, Host, and Template, Role being used to describe a group of virtual machines that share a common template, Machine representing a virtual machine that is going to be created upon a host machine or an actual physical machine that is going to be customized, Host being a physical machine that a virtual machine is going to be created on, Template being a system prepped virtual machine; parsing the virtual machine scenario definition file, including each of the data fields, to determine information defining a virtual machine; providing to a virtual machine provisioning server the information defining the virtual machine such that the provisioning server passes a request to a virtual machine host which instantiates the virtual machine; and communicating with a custom action service of the virtual machine provisioning server to cause an action to execute upon the virtual machine.