使用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]
在配方早期的所有其他潜在通知之后运行。
答案 0 :(得分:2)
你可以通过
来节省一毫秒ruby_block 'noop' do
block { }
notifies :run, 'execute[cleanup]'
end
但总体上要警惕这种设计。延迟通知是一个单一的小动作,没有办法得到比所有推迟的更快的"例如。考虑使用自定义资源,并更紧密地确定单个操作方法所需的行为。