检查厨师食谱中是否存在文件/目录的最干净方法是什么?

时间:2018-08-14 08:46:57

标签: chef chef-recipe

我正在研究的食谱将remote_directory用作复制用户房屋的方式。

尽管食谱中可能不存在用户主目录,在这种情况下,remote_directory不应对该资源做任何事情。

尽管如此,我很难清理干净。该资源似乎没有提供任何方法来测试源的存在,并且我无法可靠地使用Chef缓存,因为我观察到在某些情况下,文件不会从缓存中清除,因此我可以不要使用简单的Dir.exists?检查。

因此,我目前正在使用run_context.cookbook_collection['users'].all_files来进行这种测试。

这是我可以申请此案的最佳实践吗?

1 个答案:

答案 0 :(得分:0)

没有干净的方法可以执行此操作,或者根本没有任何受支持的方法。我们不建议您在Chef的内部数据结构中四处浏览,因为我们保留随时更改这些内容而不会产生任何过时警告或其他警告的权利。最好的办法是使用同名资源属性忽略该错误,如果在较新版本的Chef上,您至少可以使用该模式的静默方式。