Chef infra 如果cookbook不包含文件,则跳过模板

Chef infra 如果cookbook不包含文件,则跳过模板,chef-infra,Chef Infra,如果烹饪书上没有文件,我希望跳过文件的创建。 当前正在使用的资源示例: cookbook_file "#{filename}.txt" do source "#{filename}_#{node['hostname']}" ignore_failure true end ignore\u failure在这种情况下有效,但是触发时,它确实会在我的厨师运行时显示一个大错误 如果特定模板不存在,我是否可以使用一个保护来跳过资源?大概是这样的: //I just made this up t

如果烹饪书上没有文件,我希望跳过文件的创建。 当前正在使用的资源示例:

cookbook_file "#{filename}.txt" do
  source "#{filename}_#{node['hostname']}"
  ignore_failure true
end
ignore\u failure
在这种情况下有效,但是触发时,它确实会在我的厨师运行时显示一个大错误

如果特定模板不存在,我是否可以使用一个保护来跳过资源?大概是这样的:

//I just made this up to illustrate my point 
only_if { "#{Chef::CookbookFile[:cookbook_files]}".include?('#{filename}_#{node['hostname']}') }

这不是我们真正支持的。如果你深入挖掘,你可以找到方法,但这不是我们鼓励或支持的用例。最好是设置一个回退模板。类似于
source[“#{filename}{u35;{node['hostname']}.erb”、“#{filename}{u default.erb”
或类似的东西,因此如果找不到每主机名模板,它将使用默认模板(可能只是空的)。

替代方法更好,我不知道这个特性!谢谢