我有一个配置/etc/network/interfaces.d/ethX
的角色。它具有处理程序'restart interface',通过通知调用。
但是很少有程序在该接口上侦听,如果我在该接口的配置中进行了任何更改,则应重新启动。
通常我可以发送notify
来重新启动配置应用程序的角色的处理程序,但这里有一个catch:配置接口的角色是一个相当通用的角色,可以从不同的playbooks和不同的应用程序角色一起调用。我无法将notify
硬编码为这些角色的处理程序,但是,我仍然希望重新启动对该接口应用程序的所有“依赖”。
Ansible是否有某种“订阅”功能用于通知?我知道厨师会这么做,所以Ansible也可以做到这一点吗?我认为其他方式是来自接口配置角色的某种“软通知”,如果没有这样的处理程序,它不会失败。
有什么想法吗?
答案 0 :(得分:3)
是的,自2.2版以来,Ansible确实有a listener feature。
处理程序的命名空间很常见,因此足以确保分配包含特定处理程序的角色(除非您在其中一个角色中使用flush_handlers
,在这种情况下,您需要确保包含处理程序的角色你希望运行,在实际的冲洗操作之前分配。)