diff --git a/examples/playbooks/roletest.yml b/examples/playbooks/roletest.yml index ec9c9886c37..9a7cede6a60 100644 --- a/examples/playbooks/roletest.yml +++ b/examples/playbooks/roletest.yml @@ -45,3 +45,10 @@ # explicit tasks and handlers can be used, but are not required. # they will run after the roles if present. + tasks: + + # you can still have loose tasks/handlers and they will execute after roles + + - shell: echo 'this is a loose task' + + diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 567158633ac..f46e6ad4b0b 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -166,13 +166,12 @@ class Play(object): handlers = [] if type(vars_files) != list: vars_files = [] - tasks.extend(new_tasks) - handlers.extend(new_handlers) - - vars_files.extend(new_vars_files) - ds['tasks'] = tasks - ds['handlers'] = handlers - ds['vars_files'] = vars_files + new_tasks.extend(tasks) + new_handlers.extend(handlers) + new_vars_files.extend(vars_files) + ds['tasks'] = new_tasks + ds['handlers'] = new_handlers + ds['vars_files'] = new_vars_files return ds