Ansible tem o recurso ignore_errors para tarefas. Mas seu caso sobre o papel inteiro. Eu acho que você pode separar papéis dois capítulos em um arquivo de cartilha. Isso é complicado, mas eficiente.
- hosts: myhost
roles:
- common
- rabbitmq
- hosts: myhost
roles:
- cleanup
Então, se você levantar qualquer falha no primeiro manual do capítulo, continuará no próximo capítulo:)
Além disso! O Ansible 2.0 tem um novo mecanismo de bloco, não é exatamente o que você quer, mas talvez você pense em redesenhar seu mecanismo lógico.
tasks:
block:
- debug: msg='i execute normally'
- command: /bin/false
- debug: msg='i never execute, cause ERROR'
rescue:
- debug: msg='I caught an error'
- command: /bin/false
- debug: msg='I also never execute :-('
always:
- debug: msg="this always executes"