木偶:引用计数资源和安装/删除需求?

仍然试图让傀儡“做我想做的事”(我仍然不知道如何正确地谈论它)…

我有以下问题:Apache服务器托pipe多个客户端的静态内容,并且这个静态内容是版本化的:

node the.node.name { client { 'c1': version => 'v1', # otherstuff } client { 'c2': version => 'v2', } } 

有30多个客户以这种方式定义。 总共有2到4个版本的内容随时可以安装。

现在,随着时间的推移,版本发展迅速。 现在我只能实现安装新的内容,但永远不会删除过时的内容。

你将如何去引用计数安装的版本,并卸载过时的版本?

将你的静态内容存储在一个git仓库中。 为您想要的每个版本的内容创build一个分支。 使用puppet创build一个存储库(如果没有),确保检出正确的分支,并自动更新存储库。 Git会负责添加和删除文件。 在任何给定的时间重新分配你的分支来进行适当的修改。

或者,您可能会发现带有正确标志的rsync(删除主文件中不存在的文件)也可能起作用。

最简单的解决scheme可能是在添加和删除软件包时存在pipe理开销。

  package { 'c1_v8': ensure => present, } package { 'c2_v7': ensure => present, } package { 'c1_v1': ensure => absent, } package { 'c2_v2': ensure => absent, } 

你可以使用像hiera w / puppet-hiera这样的外部数据源来pipe理哪个软件包应该放在哪个服务器上。