Puppet中的filebucket配置


11

如何配置和使用Puppet文件桶?

我想:

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

Answers:


16

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

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

文件类型的默认设置是备份到名为“ puppet”的本地文件桶。通过将“ puppet”文件桶更改为服务器文件桶,默认情况下将获得基于服务器的文件桶。

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

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

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

这样就完成了第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匹配的目录名称中,有“路径”来告诉您哪个文件,“内容”是实际文件。您需要查看报告以查看其来自哪个系统。


我不做任何审计。您正在寻找哪种审计?那可能意味着很多事情。


谢谢,实际上,这很有帮助。我没有意识到在puppetmaster上配置集中式Filebucket服务器是如此简单!有一些功能请求可以打开,以便使用更好的文件桶管理工具@puppetlabs。似乎目前还不成熟。我的中央文件桶现在正在填充文件,但是我似乎没有办法确定文件起源于哪个主机。但是,您的1衬套会有所帮助。
罗比

我认为,如果多个主机具有相同的文件进入文件桶,则只会被存储一次,因此文件桶中的文件与主机之间的关系并不简单。
自由报

0

一种建议是将文件添加到版本控制服务器(svn,git)。我将与特定模块相关的所有文件存储在/ files下的modules目录中。修改文件后,将其签入SVN并通过挂钩将其推送到主文件。

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

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


2
filebucket!=文件服务器。我第一次读这个问题时犯了同样的错误。
Sirex

是的,我说的是人偶文件桶。Puppet中的系统将替换的文件重新放置到暂存区中,而不仅仅是删除它们。linux.die.net/man/8/filebucket
robbyt 2011年

其实我也不明白。如果您在git repo中拥有所有版本的配置文件,为什么会惹上filebucket?不小心删除了其他内容?删除其他内容在puppet中非常明确。IMHO filebucket是专为完全没有版本控制的人们设计的。
Art Shayderov

否,文件存储区仅对手动检索意外删除/覆盖的文件有用(例如,您在日志中查找md5总和,并从文件存储区中检索具有该总和的文件),但是当完全支持事务处理时,文件存储区将用于撤消交易。
Martijn Heemels,2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.