是否有可能在一个angular色中“发布任务”? 即angular色中定义的任务,将在游戏结束时运行?
例如,我有一个commonangular色,大多数其他angular色依赖于这个angular色。 commonangular色提供了一些基本的东西,以避免重复,如调整yumconfiguration等。
我注意到, 剧本有post_tasks 。 我想知道是否有可能在angular色本身定义职位任务?
更新:引用Ansible文档 :
处理程序:在更改上运行操作
…
这些“通知”操作是在剧本的每个任务结束时触发的,并且即使被多个不同的任务通知也只会被触发一次。
…
angular色稍后介绍。 值得指出的是,处理程序是在“pre_tasks”,“roles”,“tasks”和“post_tasks”部分之间自动处理的。
…
显然,这部分文档或者是误导性的,或者是正确的谎言(=里面有错误)。 看来,处理程序是在每个播放结束时 , tasks和post_tasks之间被post_tasks ,因为下面的简单testing显示:
- name: Handlers test hosts: all gather_facts: no roles: - some-role # some-role depends on common tasks: - name: This a task shell: /bin/true post_tasks: - name: This is a post task shell: /bin/true
而共同的angular色:
# tasks/main.yml - name: Registering handler shell: /bin/true notify: this is a handler #handlers/main.yml - name: this is a handler shell: /bin/true
(因为没有人提供了答案,我不能接受,但是没有正确回答我自己的问题和意见的提示…)
此行为是由Ansible 1.9.x中的错误引起的,目前在此处进行了跟踪: https : //github.com/ansible/ansible/issues/12575