是否可以在角色中设置“发布任务”?即在角色中定义的任务,将在戏剧结束时运行?
例如,我有一个common
角色,大多数其他角色都依赖于该角色。该common
角色提供了一些避免重复的基本内容,例如对 yum 配置的调整等。
我注意到剧本有post_tasks
. 我想知道是否可以在角色本身中定义发布任务?
更新: 引用Ansible 文档:
处理程序:在更改时运行操作
...
这些“通知”操作在剧本中每个任务块的末尾触发,即使被多个不同的任务通知也只会触发一次。
...
稍后描述角色。值得指出的是,处理程序会在“pre_tasks”、“roles”、“tasks”和“post_tasks”部分之间自动处理。
...
显然,文档的这一部分要么是误导,要么是说谎(=其中有错误)。似乎在每次 play 结束时触发处理程序,在tasks
和之间post_tasks
,如下面的简单测试所示:
- 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
Run Code Online (Sandbox Code Playgroud)
以及共同作用:
# 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
Run Code Online (Sandbox Code Playgroud)
(由于没有人提供答案,我无法接受,但感觉用评论中的提示回答我自己的问题并不正确......)
归档时间: |
|
查看次数: |
10523 次 |
最近记录: |