我创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块