Puppet 中的 filebucket 配置

Puppet 中的 filebucket 配置

如何配置和使用 Puppet filebucket?

我想:

  1. 在单个服务器上存储文件存储桶数据
  2. 能够在必要时审核/解析/修剪文件存储桶
  3. 确保文件桶数据在客户端->主服务器之间安全传输

答案1

好吧,在我的所有节点都包含的类中,我得到了:

filebucket { puppet: server => "puppet.example.edu" }

File type 中默认备份到名为“puppet”的本地文件桶。通过将“puppet”文件桶更改为服务器文件桶,您将默认获得基于服务器的文件桶。

或者,如果您想保留覆盖一个特定文件以使用本地文件存储桶的选项,您可以执行以下操作:

filebucket { main: server => "puppet.example.edu"; }
File { backup => main }

https://puppet.com/docs/puppet/latest/types/filebucket.html了解有关选项的更多详细信息。

这实现了第 1 项,因为它告诉所有节点都使用同一个服务器来存储文件桶。第 3 项是免费的,因为它仍然通过基于 SSL 的连接进行,并进行 SSL 证书验证。

Filebucket 最有用的情况是恢复,恢复很可能是同一天。在这种情况下,查看报告并使用“ filebucket”或“ puppet filebucket”命令根据报告中的 md5sum 检索原始内容。


第 2 项是事情变得棘手的地方......

我使用这样的脚本来修剪它:

find /var/lib/puppet/clientbucket/ -type f -mtime +45 -atime +45 -delete

这会删除超过 45 天且在此期间完全没有被访问过的所有数据。45 天是基于我们的备份和备份保留策略,因为这段时间足够进行长期保留的备份,并且理论上我们有 18 个月的恢复时间。


您要寻找哪种解析?服务器上的存储桶设置是按 md5sum 组织的层次结构,在与 md5sum 匹配的目录名称内,有“路径”告诉您哪个文件和“内容”是实际文件。您需要查看报告看看它来自哪个系统。


我不做任何审计。您要找哪种审计?这可能意味着很多事情。

答案2

一个建议是将文件添加到修订控制服务器 (svn、git)。我将与特定模块相关的所有文件存储在 /files 下的模块目录中。当文件被修改时,它会被签入 SVN 并通过钩子推送到主服务器。

例如,我有一个模块管理 postfix 并将 /etc/postfix/virtual 文件推送到客户端。该文件存储在 /etc/puppet/modules/postfix/files 下。

这使您可以重复使用在模块中创建的代码以及按模块组织文件。

相关内容