厨师独自通知

时间:2016-01-29 17:01:53

标签: chef

使用Chef,我想在调用另一个资源的上下文之外使用通知功能。

以下是我作为一种解决方法所做的工作,但我想知道是否有更简洁的方法:

execute 'restart myapp' do
  command '/srv/www/myapp/shared/scripts/myapp restart'
  action :nothing
end

# Code here does configuration and dependencies restart notifications

execute 'echo "Restarting myapp"' do
  notifies :run, 'execute[restart myapp]'
end

这里的关键是我需要execute[restart myapp]在配方早期的所有其他潜在通知之后运行。

1 个答案:

答案 0 :(得分:2)

你可以通过

来节省一毫秒
ruby_block 'noop' do
  block { }
  notifies :run, 'execute[cleanup]'
end

但总体上要警惕这种设计。延迟通知是一个单一的小动作,没有办法得到比所有推迟的更快的"例如。考虑使用自定义资源,并更紧密地确定单个操作方法所需的行为。