尽管内容没有改变,Chef 模板也会重写文件

尽管内容没有改变,Chef 模板也会重写文件

我在用着模板生成文件。当服务器上的应用程序启动时,它会重写文件 - 内容不会改变,但 Chef 会认为它已更改,并在下次运行时也会重写它。在日志中,它会no difftemplate处理过程中显示,然后触发通知程序。

我该怎么做才能让 Chef 按内容比较文件,以便它不会在没有真正原因的情况下通知服务重新启动。

答案1

调试日志:

DEBUG:calculating checksum of file1 to compare with c24f2aa74f9665cb944ab72ed34571367a0de38e10432675d3c5e8610ad9d046  
DEBUG: running: diff -u file1 file2

因此,即使 diff(在 chef 中)返回,校验和也不相等(无差异)。然后我尝试diff -u file1 file2在终端运行,结果: \ 文件末尾没有换行符

因此文件大小的差异是 1 个字节。

答案2

模板资源不仅管理内容,还管理文件的groupownermode。如果内容没有改变(如您所注意到的),那么您将需要仔细查看其他属性,因为其中任何一个属性的改变仍会触发通知。

相关内容