Forcing a stop on failure

Hi! I have a playbook that has three plays, each one deploying software to a set of servers . . . if any of these plays fail I want the playbook to stop running. Is that what any_errors_fatal is for? It sounds like it's close, but I can't tell if in the case of multiple plays it will work as I need.

So the top-level playbook is something like this:

- hosts: set_a

roles:

- foo

- hosts: set_b

roles:

- bar

- hosts: set_c

roles:

- baz

At specific points within the roles foo and bar I would like to stop the run if there are failures, most importantly, I do not want set_c to get updated. Any thoughts are greatly appreciated!

Thanks a lot!

​There's the fail module for that, to be combined with a when: conditional.

Thanks! What I’m not clear on, though, is where that fail would go? or what the condition would be . . ?

- hosts: set_b
roles:
- bar

- tasks:

fail: msg='i have failed you'

when: any tasks for set_b hosts have failed

- hosts: set_c
roles:
- baz