【发布时间】:2012-10-26 04:09:18
【问题描述】:
我需要部署一个文件fileC,它是其他两个文件fileA 和fileB 的串联。在我当前的设置中,所有三个文件都在说明书中,声明为说明书文件资源。
但感觉是多余的。我想将较大的文件声明为其他两个文件的函数。
当第一次需要fileC 时,我通过将文件资源的内容声明为IO.read(file1) + IO.read(file2) 来“几乎可以工作”。但是一旦将配方部署到新节点就会失败,因为fileA 和fileB 在编译时不存在。
我尝试访问底层 Ruby 对象的信息,了解可以在何处部署说明书。但是我看的越多,我就越不相信我的 Chef/Ruby 知识水平是可能的。资源↔提供者的差距似乎太大了。
我想避免使用cat fileA fileB >fileC 类型的解决方案,原因如下:将来,我可能需要区分需要 C 的节点和需要 A/B 的节点。
关于如何解决冗余的任何想法?
【问题讨论】:
-
(发布在 SO 而不是 SF 上,因为感觉更像是编程而不是实际的管理员)
标签: chef-infra