【问题标题】:How to ensure the file transferred is identical to the source in puppet?如何确保传输的文件与 puppet 中的源相同?
【发布时间】:2018-03-31 03:54:56
【问题描述】:

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

【问题讨论】:

  • 您需要服务器配置验证/验收测试。该领域最流行的两个工具是 Serverspec 和 Goss。看看这些。

标签: puppet


【解决方案1】:

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

这是一个公平的问题,但最终,您不需要在这里做任何特别的事情。 Puppet agents communicate with the master via HTTPS 用于所有目的。除了两端的身份验证和传输数据的机密性之外,this ensures the integrity of the data transferred 具有非常高的置信度。这同样适用于目录中嵌入的文件以及从主文件服务器单独下载的文件。

我想知道 传输文件时网络关闭,可能有一半的配置文件 在傀儡代理下一次运行之前对服务非常有害。

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

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

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

但是如果 配置文件的内容是写在模板中的。我不知道怎么做 校验其 md5 val。

如果文件的内容是通过模板生成的,那么该内容将嵌入到目录中,并且如果您安装并启用了 PuppetDB,它也会存储在 PuppetDB 中。原则上,您可以从那里对内容进行哈希处理,但我认为那将是浪费精力。文件内容一开始就是错误的可能性比在主服务器和代理服务器之间损坏的可能性要大得多。

如果您担心这一点,那么您不应该忽视目录的其他部分在传输过程中损坏的可能性,谁知道会产生什么不良影响。如果你愿意的话,那会让你彻夜难眠,但正如我所说,Puppet 内置了防止这类事情的保护措施。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2018-02-12
    • 2021-02-04
    相关资源
    最近更新 更多