厨师:如何仅在通知上运行资源?

厨师:如何仅在通知上运行资源?

我想声明一个资源,该资源要在通知时多次运行,并且仅在通知时运行。如何防止资源在声明后自行运行?

有没有什么方法可以检查是否存在通知,以便我可以运行类似“only_if :notified”的命令?

答案1

action :nothing声明时使用。

答案2

下面是一个示例,execute只有当我的资源汇聚时,我的资源才会汇聚directory

directory '/opt/foo' do
  action :create
  notifies :run, 'execute[custom command]', :immediately
end

execute 'custom command' do
  command 'echo foo'
  action :nothing
end

https://docs.chef.io/chef/resources.html#notifications查看更多示例。

相关内容