我正在研究厨师食谱,我需要根据代码的结果更新数据包中的某些信息。基本上我需要更新一个成功或失败的数据包。如何捕捉厨师异常
的代码看起来是这样的:
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
的问题是,即使有文件丢失,救援块不excecuted和数据包不会随之更新。 因此,当我在服务器上运行命令sudo chef-client时,它将以异常Chef::Exceptions::FileNotFound
结束,但它不会由rescue
块处理。是否有意义?任何帮助?
您能否提供有关导致错误的信息。这可以帮助我们帮助您处理代码。 – screenmutt