我正在编写的一本食谱使用remote_directory作为复制用户主页的手段。
用户主页可能不存在于食谱中,但在这种情况下,remote_directory不应对该资源执行任何操作。
不过,我发现很难干净利落地执行此检查。该资源似乎没有提供任何方法来测试源的存在,并且我不能可靠地使用chef缓存,因为我观察到在某些情况下,文件不会从缓存中清除,因此我不能使用简单的Dir.exists?检查。
因此,我目前正在使用run_context.cookbook_collection['users'].all_files来执行这样的测试。
这是我申请这个案例的最佳实践吗?
发布于 2018-08-15 01:01:03
没有干净的方法可以做到这一点,或者实际上根本没有任何支持的方法。我们不建议查看Chef的内部数据结构,因为我们保留在任何时候更改这些结构的权利,而不建议使用警告或诸如此类的东西。最好的做法是使用同名资源属性忽略错误,如果在更新版本的Chef上至少可以使用该属性的静默模式变体。
https://stackoverflow.com/questions/51837332
复制相似问题