过滤 puppet pluginsync

过滤 puppet pluginsync

有没有方法可以过滤要同步的插件?我从 forge 下载了一些新模块(puppetboard、puppetdb、python)。这些模块包括插件,它们也仅在 puppet master 上需要,我的任何客户端都不需要这些插件。

不幸的是,这些模块中的 facter 插件导致 puppet 客户端在某些较旧的系统上失败,我无法升级到最新版本的 ruby​​/puppet/facter。这些较旧的系统运行的是旧版软件,如果不进行大量黑客攻击,这些软件就无法在较新的操作系统版本上运行。我其余的插件和自定义 fact 都运行良好。所以我想保持插件同步,但排除这些破坏旧系统的事实。

有人想出一个好的方法来同步部分插件吗?我搜索了好久都没找到解决方案。

答案1

没有办法过滤插件。

但正如您在评论中所说,您需要编写事实/类型来处理它们所运行的操作系统。对于类型和提供程序,您可以提前退出。

对于事实,您可以使用局限

答案2

Puppet 本身不支持过滤要同步的插件列表。

但是,你可以使用以下方式修补 puppet 以支持此功能:pluginsync_filter来自 CERN 的补丁

之后,您可以通过 Hiera 将模块列入白名单,如下所示:

pluginsync_filter_enable: true
pluginsync_filter:
   - whitelisted
   - module
   - names

笔记:据我所知,此补丁可能不受公开支持,因此如果您决定使用它,您将需要自己承担责任。

相关内容