I'm working on several Ansible playbooks to spin up a new server instance. There are approximately 15 different playbooks I need to run in a specific order to successfully spin up a server.
My initial thought was to write a shell script that executes ansible-playbook playbook_name.yml
and duplicate it one entry for each playbook I need to run.
Is there a smarter/better way to do this using a master playbook and if so what would it look like (examples are appreciated).
I could write one monolithic playbook that does it all but there are some plays that run as root first then as a sudo user later.
For newer versions of Ansible, you can build many sub-playbooks and aggregate them via import_playbook statements:
Build many sub-playbooks and aggregate them via include statements.
If your playbooks must run in order and if all of them are mandatory, build a main playbook and include files with tasks. A playbook should always be a closed process.
From: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/import_playbook_module.html