Chef infra 什么';检查厨师烹饪书中是否存在文件/目录的最干净的方法是什么?

Chef infra 什么';检查厨师烹饪书中是否存在文件/目录的最干净的方法是什么?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我编写的一本食谱使用remote\u目录作为复制用户主页的手段 用户主页可能不存在于烹饪书中,但在这种情况下,remote\u目录不应为该资源做任何事情 但是我发现很难干净地执行这项检查。资源似乎没有提供任何方法来测试源代码的存在性,我也不能可靠地使用chef缓存,因为我观察到在某些情况下,文件没有从缓存中清除,所以我不能使用简单的Dir.exists?检查 因此,我目前正在使用run_context.cookbook_collection['users')。所有_文件来执行此类测试 这是我在这

我编写的一本食谱使用
remote\u目录
作为复制用户主页的手段

用户主页可能不存在于烹饪书中,但在这种情况下,
remote\u目录
不应为该资源做任何事情

但是我发现很难干净地执行这项检查。资源似乎没有提供任何方法来测试源代码的存在性,我也不能可靠地使用chef缓存,因为我观察到在某些情况下,文件没有从缓存中清除,所以我不能使用简单的
Dir.exists?
检查

因此,我目前正在使用
run_context.cookbook_collection['users')。所有_文件
来执行此类测试


这是我在这个案例中可以应用的最佳实践吗?

没有干净的方法可以做到这一点,或者说根本没有任何支持的方法。我们不建议在Chef的内部数据结构中进行此操作或任何其他操作,因为我们保留随时更改这些数据结构的权利,而不会出现任何弃用警告或诸如此类的情况。如果在较新版本的Chef上,您至少可以使用该属性的静默模式变体,那么最好使用Ephonomy resource属性忽略该错误