好的,我刚刚开始学习Puppet并完成文档。从我看到的:
require
与before
subscribe
与notify
显然,这些是在依赖关系的相反方面添加的,但是你明白我的观点。
从代码可读性和可维护性方面来看,使用一对(每对)比另一对更好吗?我是否应该同时使用两者以获得最大的清晰度,否则会使维护变得麻烦?想法?
答案 0 :(得分:4)
两种变体都同样合适。但它们有一些具体的用途。
E.g。
exec { "initialize-footool": require => Package["footool"] }
file { "/etc/default/footool": before => Exec["initialize-footool"] }
阅读更像英语而不仅仅是exec上的要求。
E.g。
include apache
exec { "apache2ctl graceful": require => Package[apache] } # package inside class apache
后者虽然很糟糕。我发现最明确的好处之一就在于这些元参数'能够以整个班级为目标。
include apache
exec { "apache2ctl graceful": require => Class["apache"] }
file { "/etc/default/apache2": before => Class["apache"] }
有意将自己限制在require
而不是永远使用before
的人可以采用这种语法
class { "apache": require => File["/etc/default/apache2"] }
社区不鼓励类{}样式声明,因为
include
语句混合使用,也会产生解析订单问题