ansible中flush_处理程序的替代方案

ansible中flush_处理程序的替代方案,ansible,ansible-2.x,Ansible,Ansible 2.x,我的Ansible剧本中有处理程序,我想立即触发这些通知。如何在不调用meta\u handler=flush\u handler的情况下实现这一点? 这在Ansible 2.5.6中可以正常工作,但在此版本之后,会显示一条警告,说明: [警告]:刷新\u处理程序任务不支持有条件 任何帮助都将不胜感激。这是一个悬而未决的问题 (2021-04-20该问题仍然悬而未决。如果状态发生变化,请在此发表评论) 引用我的话: 让我描述一个有效的场景(如下)。在任务abc.yml完成后和任务def.yml开

我的Ansible剧本中有处理程序,我想立即触发这些通知。如何在不调用
meta\u handler=flush\u handler
的情况下实现这一点? 这在Ansible 2.5.6中可以正常工作,但在此版本之后,会显示一条警告,说明:

[警告]:刷新\u处理程序任务不支持有条件

任何帮助都将不胜感激。

这是一个悬而未决的问题

(2021-04-20该问题仍然悬而未决。如果状态发生变化,请在此发表评论)

引用我的话:

让我描述一个有效的场景(如下)。在任务abc.yml完成后和任务def.yml开始前需要“刷新”。但是,仅当操作系统为RH时,才会导入包含任务xyz.yml的文件。在此,Ansible抱怨:

如果能够抑制警告,那就太好了。

# cat xyz.yml
- include_tasks: abc.yml
- meta: flush_handlers
- include_tasks: def.yml


为什么要立即启动
flush\u处理程序时,在
flush\u处理程序上有
when
条件?如果不添加此元标记,则不会调用notify处理程序。当条件适用于包括flush_handler的整个块时,我是否可以立即触发处理程序?问题仍然存在。“为什么有when条件…”将flush_处理程序放在块之后。要么在块中通知处理程序,要么不通知。@VladimirBotka-我来这里是因为(在我的例子中)我有一个条件包含的完整角色。在该角色中,我需要刷新处理程序,因为某些任务依赖于前一个正在运行的任务中的处理程序。将处理程序放在块之后(或者,在我的例子中,放在角色之后)并没有真正的帮助。。。
# cat xyz.yml
- include_tasks: abc.yml
- meta: flush_handlers
- include_tasks: def.yml

# cat playbook.yml
  ...
  tasks:
    - import_tasks: xyz.yml
      when: (ansible_os_family == "RedHat" )