Puppet:资源的引用计数以及根据需要安装/删除它们?

Puppet:资源的引用计数以及根据需要安装/删除它们?

仍在尝试让傀儡“做我想做的事”(我仍然不知道如何正确地与它交谈)...

我遇到了以下问题: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)来管理哪些包应该位于哪些服务器上,从而获得更好的效果。

相关内容