ansible 中flush_handlers 的替代方案

rav*_*avi 5 ansible ansible-2.x

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

[警告]:flush_handlers 任务在有条件时不支持

任何帮助,将不胜感激。

Vla*_*tka 3

这是一个未解决的问题元:flush_handlers不遵守when子句#41313

(2021-04-20该问题仍然开放。如果状态发生变化,请在此评论)

引用我的评论

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

[WARNING]: flush_handlers task does not support when conditional
Run Code Online (Sandbox Code Playgroud)

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

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

Run Code Online (Sandbox Code Playgroud)
# cat playbook.yml
  ...
  tasks:
    - import_tasks: xyz.yml
      when: (ansible_os_family == "RedHat" )
Run Code Online (Sandbox Code Playgroud)