在Puppet清单中使用'before'或'require'?

在Puppet清单中使用'before'或'require'?,puppet,Puppet,好的,我刚开始学习木偶,并通过文档工作。据我所见: require与前面的相同 订阅与通知 很明显,这些都是在依赖关系的相对两侧添加的,但你们明白我的意思了 从代码可读性和可维护性的角度来看,使用一个(每一对)是否比另一个更好?为了最大程度地清晰起见,我应该使用这两种方法,还是这会使维护变得繁琐?思想?任何一种变体都同样适用。不过,它们有一些具体用途 使意图更加明确 例如 读得更像英语,而不仅仅是执行官的要求 与不了解相关资源的其他资源建立关系 例如 不过,后者是相当糟糕的做法。我发

好的,我刚开始学习木偶,并通过文档工作。据我所见:

  • require
    与前面的
    相同
  • 订阅
    通知
很明显,这些都是在依赖关系的相对两侧添加的,但你们明白我的意思了


从代码可读性和可维护性的角度来看,使用一个(每一对)是否比另一个更好?为了最大程度地清晰起见,我应该使用这两种方法,还是这会使维护变得繁琐?思想?

任何一种变体都同样适用。不过,它们有一些具体用途

  • 使意图更加明确
例如

读得更像英语,而不仅仅是执行官的要求

  • 与不了解相关资源的其他资源建立关系
例如

不过,后者是相当糟糕的做法。我发现,最明确的好处之一在于这些元参数能够以整个类为目标

include apache
exec { "apache2ctl graceful": require => Class["apache"] }
file { "/etc/default/apache2": before => Class["apache"] }
那些想要限制自己的人,比如说,
要求
,而不是在
之前使用
,可以使用这种语法

class { "apache": require => File["/etc/default/apache2"] }
但是社区不鼓励类{}样式的声明,因为

  • 它不能用于多次声明同一类
  • 即使与同一类的
    include
    语句混合使用,它也会带来解析顺序问题

所以我对这篇文章的理解基本上是,“使用你需要的东西来最好地维护模块化。”这很正确吗?这是一个合理的总结,是的。
include apache
exec { "apache2ctl graceful": require => Class["apache"] }
file { "/etc/default/apache2": before => Class["apache"] }
class { "apache": require => File["/etc/default/apache2"] }