Ansible的处理程序依赖项

时间:2017-04-05 07:56:12

标签: ansible ansible-role ansible-handlers

我有一个配置/etc/network/interfaces.d/ethX的角色。它具有处理程序'restart interface',通过通知调用。

但是很少有程序在该接口上侦听,如果我在该接口的配置中进行了任何更改,则应重新启动。

通常我可以发送notify来重新启动配置应用程序的角色的处理程序,但这里有一个catch:配置接口的角色是一个相当通用的角色,可以从不同的playbooks和不同的应用程序角色一起调用。我无法将notify硬编码为这些角色的处理程序,但是,我仍然希望重新启动对该接口应用程序的所有“依赖”。

Ansible是否有某种“订阅”功能用于通知?我知道厨师会这么做,所以Ansible也可以做到这一点吗?我认为其他方式是来自接口配置角色的某种“软通知”,如果没有这样的处理程序,它不会失败。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

是的,自2.2版以来,Ansible确实有a listener feature

处理程序的命名空间很常见,因此足以确保分配包含特定处理程序的角色(除非您在其中一个角色中使用flush_handlers,在这种情况下,您需要确保包含处理程序的角色你希望运行,在实际的冲洗操作之前分配。)