仍在尝试让傀儡“做我想做的事”(我仍然不知道如何正确地与它交谈)...
我遇到了以下问题:Apache 服务器为多个客户端托管静态内容,并且这些静态内容是有版本的:
node the.node.name {
client { 'c1':
version => 'v1',
# otherstuff
}
client { 'c2':
version => 'v2',
}
}
有 30 多个客户端以这种方式定义。并且总共有 2 到 4 个版本的内容随时安装。
现在,随着时间的流逝,版本不断更新——非常快。现在我只能安装新内容,但无法删除过时的内容。
您将如何对已安装的版本进行引用计数,并卸载过时的版本?
答案1
将静态内容存储在 git 存储库中。为您想要的每个版本的内容创建一个分支。如果没有存储库,请使用 puppet 创建存储库,以确保签出正确的分支,并自动更新存储库。Git 将负责从那里添加和删除文件。随时将您的分支重新指向适当的修订版本。
或者,您可能会发现具有适当标志(删除主服务器上不存在的文件)的 rsync 也可能有效。
答案2
最简单的解决方案可能是,尽管添加和删除包会产生管理开销。
package { 'c1_v8': ensure => present, }
package { 'c2_v7': ensure => present, }
package { 'c1_v1': ensure => absent, }
package { 'c2_v2': ensure => absent, }
您可以使用外部数据源(如 hiera w/ puppet-hiera)来管理哪些包应该位于哪些服务器上,从而获得更好的效果。