Dependencies (modules)

In a use case in a first step a set of vault structures should be created and afterwards based on those vault structures one or more virtual machine(s) using the vsphere provider should be provided. The vault structures reflect the meta data related to the list of virtual machines.

What is the best solution to this scenario?

Using a module for the first step (vault) and a module for the second step (vsphere), both called from some main.tf, seems to be obvious, but imposes some complexities regarding establishing complexities between multiple dependencies.