When setting up multimachine environments, it is often important to specify how machines will provision and the order in which they will provision.
Before we start with an example, there are a few important things to keep in mind about the ordering of Vagrant resources:
Ordering and dependencies in Vagrant environments are often dependent on the type of resource being provisioned. In the case of desktop hypervisors, a Vagrant boot cycle will proceed in the order in which resources are defined as the Vagrantfile will wait for the process to exit. In the case of provisioning cloud environments, the return to the calling Vagrant process will be nearly immediate (as the call itself is to an asynchronous RESTful API), so the boot order can be difficult to enforce without modifying the Vagrantfile to use cloud service APIs in order to check for boot health.
Vagrant will also evaluate code blocks from the outside in order with the code in the...