【发布时间】:2017-09-21 03:37:34
【问题描述】:
我们有两个环境,A 和 B,用于同一组应用程序。
环境 A 的更改(主要是对存储应用程序配置的 JSON 文件的修改)完全由 Puppet 管理。这些更改的一部分需要通过手动编辑 JSON 文件应用于没有 Puppet 运行的环境 B。
我们不能简单地将这些配置文件从 A 复制到 B,因为在 A 上,这些文件也被其他不能在 B 上运行的 Puppet 模块修改。
这里的问题基本上是提取在 A 中运行的特定 Puppet 对 JSON 文件所做的更改,并将它们应用到 B。运行简单的 diff 将不起作用,因为 JSON 中的对象是无序的。因此,我考虑在比较对象之前对它们进行排序(相关问题:How to compare two JSON objects with the same elements in a different order equal?)。还有其他更简单的选择吗?
【问题讨论】:
-
上次我检查时,Puppet 会在应用文件更改时将文件差异输出到其日志中。这可能取决于您的日志记录设置。从日志中剔除这些更改并将它们应用到不同的机器上应该相当简单。