【发布时间】:2015-11-06 20:43:31
【问题描述】:
我有一个 LWRP 作为其步骤的一部分下载文件,我想用它来指示资源是否已更改
action: install do
# some other stuff here
remote_file "/some/file" do
source node[:mycookbook][:source_file]
mode 00755
action :create
notifies :run, 'ruby_block[set_status]', :immediately
end
ruby_block 'set_status' do
block do
new_resource.updated_by_last_action(true)
end
end
end
在我的食谱中我有:
my_provider do
# configure
notifies :run, 'something_else', :immediately
end
remote_file 是否运行似乎并不重要,something_else 没有得到通知,但我不确定为什么。
【问题讨论】:
-
我从未见过有人尝试在提供程序操作中使用 ruby_block,因为该操作已在收敛时间运行(无需使用 ruby 块延迟代码)。您能否发布日志向我们展示哪些资源已更新(或未更新)以及何时/以何种顺序?
-
我认为我不需要使用 ruby 块,但它总是返回 false。我想知道这是不是因为它是在编译时评估的,而不是在 remote_file 实际运行之后。
标签: chef-infra lwrp