如何确保传输的文件与puppet中的源相同?

时间:2017-10-19 07:05:25

标签: puppet

我有一些配置文件要从主服务器传输到代理程序。如何确保文件传输成功完成?我想知道在传输文件网络关闭时,半配置文件可能在木偶代理的下一次运行之前对服务非常有害。    我可以在主服务器上计算文件的md5,并通过传输md5文件将md5传输到代理。在代理上我将md5与传输完成的文件进行比较。所以我知道文件已完全传输并将其移至配置文件路径。    但是如果配置文件的内容是用模板写的。我不知道校验其md5 val的方法。谁能帮我?谢谢

1 个答案:

答案 0 :(得分:1)

  

我有一些配置文件要从主服务器传输到代理服务器。如何   我可以确保文件传输成功完成吗?

这是一个公平的问题,但最终,你不需要在这里做任何特别的事情。 Puppet agents communicate with the master via HTTPS用于所有目的。除了对两端的身份验证和传输的数据({3}}的机密性外,还有很高的置信度。这同样适用于嵌入在目录中的文件以及与主文件服务器分开下载的文件。

  

我不知道   当传输文件时网络关闭,半配置文件可能会   在木偶代理人的下一次竞选之前对服务非常有害。

是的,但你不必担心这一点。当Puppet从主文件服务器下载文件时,或者当它从目录中复制它们时,它不会直接覆盖目标。相反,它将它们写入临时文件,并且只有在传输完成后才将它们移动到位。我向您保证,它可以判断连接是否在传输中间丢失,正如我已经描述的那样,所使用的传输协议具有内置的完整性保证。

  

我可以在主服务器上计算文件的md5并将md5传输到   代理通过传输md5文件。在代理上我将比较   md5到传输完的文件。所以我知道文件是   完全转移并将其移动到配置文件路径。

是的,你可以这样做。我认为这是浪费精力,但那是你的事。

  但是,如果   配置文件的内容是用模板写的。我不知道怎么回事   校验和md5 val。

如果文件的内容是通过模板生成的,那么该内容将嵌入到目录中,如果已经安装并启用了该内容,它也会存储在PuppetDB中。原则上,你可以从那里散列内容,但是我认为这会浪费精力。文件内容首先是错误的,而不是在主服务器和代理服务器之间被破坏的可能性。

如果您要担心这一点,那么您不应忽视目录中某些其他部分在转移过程中被破坏的可能性,谁知道有什么不良影响。如果你愿意的话,那会让你夜不能寐,但正如我所说,Puppet已经内置了防范这种东西的保护措施。