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 data fields used to describe a group of virtual machines that share a common template; parsing the virtual machine scenario definition file, including 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.