Hiera 和 类 之间的依赖关系

Hiera and dependencies between classes

是否可以在 Hiera 中定义两个 class 之间的依赖关系?假设您有一个安装服务的 class A 和将配置此服务的 class B。在此示例中,您如何在这些 class 之间创建依赖关系?这样的东西行得通吗?

---
classes:
  - 'B':
    require: Class[A]

您可以在 Puppet DSL 中执行此操作。最简单的方法是制作一个包装其他模块的模块,然后将其包含在 Hiera 中。

然后包装器模块可以使用 Puppet 排序工具,例如 require,其中:

The require function declares a class and causes it to become a dependency of the surrounding container.

Puppet 文档中有这方面的一些示例 Relationships and Ordering

以下是该文档页面上使用的此包装器模块的两个示例:

使用要求:

class wordpress {
  require apache
  require mysql
  ...
}

使用箭头链接:

class apache::ssl {
  include site::certificates
  # Restart every service in this class if any of our SSL certificates change on disk:
  Class['site::certificates'] ~> Class['apache::ssl']
}