Looking for current ideas to have provisioning that is dependent of state of another system being up.
Problem: Because systems come up sequentially (one at a time), need way to delay a config until after the another system is up. If the systems were brought in parallel (like containers in docker-compose), I could then wait until the other systems come up.
Use Cases: For simple web development, web app may need to seed or db:migrate on an external database server, and for more advance scenarios, may need to populate data on other persistence (mem, nosql) or queuing systems, etc. Other advanced cases (maybe sys engr testing) are popular ldap with user accounts for SSO on other LDAP client systems, load balancer w/ web backends, static monitoring depending on client systems to be monitored.
Solutions: Any solutions / patterns / best practices on this? I would use vagrant ssh -c cmd outside of vagrant, but defeats the point of using a shell provisioner. If I use Ansible, as Ansible is a remote-execution oriented, I would use it outside of vagrant. But as vagrant is handling the provisioning and orchestration, would like to do it from within itself.