Chef infra 如何在chef resource execute中使错误消息更具信息性?
下面是一些试图将文件解压到某个目录中的chef代码 该配方是从其他一些配方的深层调用的,它会随机失败Chef infra 如何在chef resource execute中使错误消息更具信息性?,chef-infra,Chef Infra,下面是一些试图将文件解压到某个目录中的chef代码 该配方是从其他一些配方的深层调用的,它会随机失败 unless ::File.exists?(::File.join(node[:zookeeper][:install_dir], zk_basename)) execute 'install zookeeper' do # <-- Line 57 user node[:zookeeper][:user] cwd Chef::Config[:file_cache_p
unless ::File.exists?(::File.join(node[:zookeeper][:install_dir], zk_basename))
execute 'install zookeeper' do # <-- Line 57
user node[:zookeeper][:user]
cwd Chef::Config[:file_cache_path]
command "tar -C #{node[:zookeeper][:install_dir]} -zxf #{zk_basename}.tar.gz"
end
end
由于错误是在我没有ssh访问权限的环境中随机发生的,因此我希望改进chef配方以捕获此错误,并在错误消息中提供更多详细信息,如:
请注意,我必须将它们放在异常的错误消息中,因为这是复杂的chef运行中唯一可见的东西(没有ssh访问)
log 'log_important_bits' do
message lazy {
the_dir = ::File.stat(node[:zookeeper][:install_dir])
the_file = ::File.stat(::File.join(node[:zookeeper][:install_dir], zk_basename))
"file.size = #{the_file.size} ... put whatever you want here"
}
level :error # So you'll always see it
end
你可以加上这样的东西
log 'log_important_bits' do
message lazy {
the_dir = ::File.stat(node[:zookeeper][:install_dir])
the_file = ::File.stat(::File.join(node[:zookeeper][:install_dir], zk_basename))
"file.size = #{the_file.size} ... put whatever you want here"
}
level :error # So you'll always see it
end