puppet - 是否有一个最小的 init.pp 来限制模块的类范围?

标签 puppet

我遇到了以下约定,init.pp 尽可能最小,对于 中的 java8 模块的示例如下所示模块/java8/init.pp

import "*"

class java8 {
    include java8::java8
}

然后 modules/java8/java8.pp 定义实际的规则/实现:

class java8::java8 {
  # ...
}

这是一个约定吗?它是一个旧的约定并且已被弃用吗?这背后的理由是什么?

最佳答案

我不熟悉这种风格作为任何广泛使用的惯例,而且我认为它的值(value)有限。具体来说,它似乎是代码组织利益和使用利益之间的折衷方案:它允许每个结果类都在以其命名的 list 文件中定义(包括委托(delegate)主类,java8::java8,在 modules/java8/manifests/java8.pp 中),同时为模块提供一个具有单段限定名称 (java8) 的主类,以便用户可以简单地

include 'java8'

我认为现在通过将详细信息委托(delegate)给模块内的其他私有(private)类来保持主类较小是相当常见的,但我认为完全委托(delegate)给一个并没有多大值(value)> 其他类(显然)仅用于命名目的。我还认为在同一模块中使用具有相同非限定名称 (java8) 的不同类可能会造成困惑。

关于puppet - 是否有一个最小的 init.pp 来限制模块的类范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33040099/

相关文章:

ubuntu - 使用 sudo 为 puppetlabs-apache 模块运行 puppet 代理

git - 无法使用 vcsrepo checkout git ssh 存储库

Puppet 如何判断变量是否已设置

ruby - Puppet 等待服务准备就绪

git - 获取当前分支名称或标签名称

java - Puppet 启动 Tomcat 时汉字显示不正确,手动启动时可以正常工作

linux - Puppet、wget 和代理

puppet - 使用 Puppet 将用户添加到多个组

ansible - 如何自动测试配置管理脚本?

mysql - centos mysql5.5通过puppet安装