【问题标题】:How to I get a chef custom lwrp to implement notifies and not_if?如何让厨师自定义 lwrp 实现通知和 not_if?
【发布时间】:2014-02-06 05:35:45
【问题描述】:

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

还有其他人可以解决这个问题吗?

我在 opsworks 耗材资源中使用这些。所以我知道我正确地使用它们。 不幸的是专有代码,所以我不能发布代码。

【问题讨论】:

  • 你应该选择正确的答案!!或者将来可能不会得到任何帮助。

标签: chef-infra lwrp


【解决方案1】:

好的。实时调频。不是真的。我没有发现这个具体问题。 如果您编写自己的轻量级资源并希望能够使用通知,那么使用

  • new_resource.updated_by_last_action(false) 或

  • new_resource.updated_by_last_action(true)

    在您的资源操作代码中。

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

【讨论】:

    【解决方案2】:

    这是来自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
    

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

    【讨论】:

      【解决方案3】:

      看起来,@Robert 提到的解决方案从未奏效,正如 Chef 问题 #3748 中提到的那样。一个可行的解决方案是使用“use_inline_resources”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        相关资源
        最近更新 更多