如何在每次厨师运行时执行Chef自定义资源

时间:2016-11-30 09:06:54

标签: ruby chef

我有一个自定义Chef资源,用于启动后台作业。它有:start:stop:reset个动作。

还有另一种资源在更新后会通知:reset我的自定义资源。

我遇到的主要问题是,在每个chef-client运行中,资源的状态都会返回:

custom_resource[resource-name] action start (up to date)
custom_resource[resource-name] action reset (up to date)

Chef的这种行为是我所期待的,但不是我需要的。我的资源必须像资源chef-client那样在每个execute运行中运行。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

默认情况下每次都会运行,但除非您拨打new_resource.updated_by_last_action(true)或类似的API,否则主厨会显示"最新的"因为资源没有说它更新了系统上的任何内容。

答案 1 :(得分:0)

在Chef 11.x / 12.x中,推荐的答案是here

在您的自定义资源文件中添加以下内容。

def whyrun_supported?
  true
end