我现在正在研究厨师食谱,我需要根据代码的结果用一些信息更新数据包。基本上我需要更新一个成功或失败的数据包。
代码如下所示:
begin
node[:fileDeploy].each do |f|
if f[:deploy]
cookbook_file "#{f[:subdirectory]}/#{f[:targetFilename]}" do
owner users['tomcatUser']
group users['tomcatGroup']
mode "0755"
cookbook node[:cookbookName]
source "#{f[:sourceFilename]}"
end
end
end
# Update data bag: succeeded
rescue Chef::Exceptions::FileNotFound => e
# Update data bag: failed
end
问题是即使有一个丢失的文件,救援块也没有被执行,数据包也没有相应地更新。因此,当我在服务器上运行命令 sudo chef-client 时,它以异常结束,Chef::Exceptions::FileNotFound
但它没有被rescue
块处理。是否有意义?有什么帮助吗?