Puppet中的filebucketconfiguration

你如何configuration和使用你的Puppet filebucket?

我想:

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

那么,在我的所有节点都包含的课程中,我有:

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

文件types中的缺省值是备份到名为“puppet”的本地文件桶。 通过改变“puppet”filebucket到一个服务器filebucket,默认情况下你会得到基于服务器的filebucket。

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

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

有关选项的更多详细信息,请参阅http://docs.puppetlabs.com/references/latest/type.html#filebucket

这样就完成了#1项目,因为它告诉节点都使用相同的单个服务器作为文件桶。 项目#3免费提供,因为它仍然通过SSL证书validation通过基于SSL的连接。

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


项目#2是事情变得棘手的地方…

我用这样的脚本修剪它:

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

这可以消除超过45天的任何事情,并且在那个时候根本没有被访问。 这45天是基于我们的备份和备份保留策略,因为它足够长,可以保留长时间的备份,并给我们提供理论上18个月的恢复时间。


你在寻找什么样的parsing? 服务器上的存储桶设置是由md5sum组织的层次结构,在与md5sum匹配的目录名称中,有“path”来告诉你哪个文件和“contents”是实际的文件。 你需要看看报告 ,看看它来自哪个系统。


我不做任何审计。 你在找什么样的审计? 这可能意味着很多事情。

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

例如,我有一个pipe理后缀的模块,并将/ etc / postfix /虚拟文件压入客户端。 该文件存储在/ etc / puppet / modules / postfix / files下。

这为您提供了重用在模块中创build的代码以及按模块组织文件的优势。