在任何条件下运行特定angular色

我创build了一个名为cleanup的angular色,这是我在playbook中的最终angular色(在运行所有其他angular色后处理一些清理)

这里是我的剧本的简化版本

 - hosts: myhost roles: - common - postgresql - rabbitmq - web - cleanup 

问题是如果剧本无法正常运行,那么我怎么能把这个特定的angular色标记为重要的,那么即使剧本中的所有其他angular色都失败了,

Ansible具有任务的ignore_errorsfunction。 但是你的情况是关于整个angular色。 我认为你可以在剧本文件中分两个章节。 这很难但高效。

 - hosts: myhost roles: - common - rabbitmq - hosts: myhost roles: - cleanup 

所以,如果你在第一章中提出任何失败的话,剧本将继续在下一章:)

也! Ansible 2.0具有新的阻止机制,这不是你想要的,但也许你认为重新devise你的逻辑机制。

 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" 

Ansible块