如何查看和使用Chef资源集合

时间:2015-12-03 15:23:10

标签: resources chef

我正在使用厨师超市的Jenkins Chef Cookbook。

它提供jenkins_command资源/提供者。这允许我例如重新加载Jenkins配置

jenkins_command 'reload-configuration'

这很有用,但我不想为每个Chef客户端运行重新加载配置。

现在的问题是,似乎无法通知此资源执行。

首先,我使用操作:nothing

定义了资源
jenkins_command 'reload-configuration' do
  action :nothing
end

在应该触发重新加载配置的资源上,我添加了

notifies :execute, 'jenkins_command[reload_configuration]', :delayed 

这会产生类似于

的消息
  

在资源中找不到jenkins_command [reload_configuration]   集合

我不清楚为什么这不起作用。这是否意味着资源是资源但未添加到资源集合中?

或者我应该使用其他名称通知资源吗?

如何查看资源集合的外观?有没有办法看到它的一部分?

resources个对象,但该对象一直是空的[]。我可以使用Chef::Log或使用log资源检查它,它始终为空。

检查资源集合的正确方法是什么? Chef文档不提供任何信息https://docs.chef.io/resource.html。它只表明我们应该能够使用任何资源。

2 个答案:

答案 0 :(得分:1)

首先,我认为您的问题归因于- vs _。您为资源reload-configuration命名,但是您通知了reload_configuration

其次,无论何时尝试触摸资源集合,您都会进入岩石领域。您可以在run_context.resource_collection中找到它。使用风险自负。

答案 1 :(得分:1)

resources本身不是对象,它是Chef::Recipe中定义的方法调用:documentation

您可以直接使用该帮助程序或调用其他方法,但这种方式很疯狂。