Let's say you have a master playbook, and in the master playbook you want to run the foo.yml and bar.yml playbooks. This could be done using:
Let's say you have the following structure.
├── /usr/local │ ├── main.yml │ ├── roles │ │ ├── foo │ │ ├── ├── tasks │ │ ├── ├── ├── main.yml │ │ ├── bar │ │ ├── ├── tasks │ │ ├── ├── ├── main.yml
IMPORTANT - import_playbook cannot be used in the tasks plugin
--- - hosts: all tasks: import_playbook: foo.yml ...
Here is how you could import the foo.yml playbook, then run some tasks, and then import the bar.yml playbook.
--- - hosts: all - name: import 'foo.yml' import_playbook: foo.yml tasks: - file: path: /tmp/foo.txt state: touch - name: import 'bar.yml' import_playbook: bar.yml ...
IMPORTANT - The when parameter cannot be used with import_playbook.
Attempting to use the when parameter, like this, would return a fatal error. For this reason, the include_role module or include_tasks module can be used instead, as the when parameter can be used with these modules.
--- hosts: all - import_playbook: foo.yml when: foo == bar ...