如何获得厨师自定义lwrp来实现通知和not_if?

时间:2014-01-17 02:05:16

标签: chef lwrp

我编写了一个自定义轻量级资源。但是通知和only_if无法识别。

其他人是否正常工作?

我在opsworks供应资源中使用这些。所以我知道我正确使用它们。 不幸的是专有代码,所以我无法发布代码。

3 个答案:

答案 0 :(得分:3)

确定。 RTFM。好吧不是真的。我没有发现这个具体问题。 如果您编写自己的轻量级资源并希望能够使用通知,请使用

  • new_resource.updated_by_last_action(假) 或
  • new_resource.updated_by_last_action(真)

    资源操作代码中的

通知将发生(真实)或不发生(假)。

答案 1 :(得分:3)

以下是Opscode

的示例
action :create do
  t = template "/etc/cron.d/#{new_resource.name}" do
    cookbook new_resource.cookbook
    source "cron.d.erb"
    mode "0644"
    variables({
        :name => new_resource.name,
        :minute => new_resource.minute,
        :hour => new_resource.hour,
        :day => new_resource.day,
        :month => new_resource.month,
        :weekday => new_resource.weekday,
        :command => new_resource.command,
        :user => new_resource.user,
        :mailto => new_resource.mailto,
        :path => new_resource.path,
        :home => new_resource.home,
        :shell => new_resource.shell
      })
    action :create
  end
  new_resource.updated_by_last_action(t.updated_by_last_action?)
end

如果您想深入研究,请点击链接。

答案 2 :(得分:0)

似乎@Robert提到的解决方案从未奏效,如厨师问题#3748中所述。一个有效的解决方案是使用'use_inline_resources'。