如何使puppet类依赖于它定义的所有资源?
我正在处理一个相当大且复杂的puppet模块,我遇到了一个问题,在这个问题中,声明对类的依赖并不能转化为对该类中定义的类资源的依赖。我创造了一个例子如何使puppet类依赖于它定义的所有资源?,puppet,Puppet,我正在处理一个相当大且复杂的puppet模块,我遇到了一个问题,在这个问题中,声明对类的依赖并不能转化为对该类中定义的类资源的依赖。我创造了一个例子 node default { notify {'This is my notification': require => Class['big_class'], } class {'big_class':} } class big_class { notify {'This is my big class':}
node default {
notify {'This is my notification':
require => Class['big_class'],
}
class {'big_class':}
}
class big_class {
notify {'This is my big class':}
class {'little_class':}
}
class little_class{
notify {'This is my little class':}
class {'smallest_class':}
}
class smallest_class {
notify {'This is my smallest class':}
}
我期望的行为是在通知之前解决最小、最小和最大的问题。但木偶不是这样工作的。运行结果如下:
Notice: This is my little class
Notice: /Stage[main]/Little_class/Notify[This is my little class]/message: defined 'message' as 'This is my little class'
Notice: This is my big class
Notice: /Stage[main]/Big_class/Notify[This is my big class]/message: defined 'message' as 'This is my big class'
Notice: This is my notification
Notice: /Stage[main]//Node[default]/Notify[This is my notification]/message: defined 'message' as 'This is my notification'
Notice: This is my smallest class
Notice: /Stage[main]/Smallest_class/Notify[This is my smallest class]/message: defined 'message' as 'This is my smallest class'
Notice: Finished catalog run in 0.05 seconds
在“This is my notification”(这是我的通知)之后解析的最小类,即使它是在通知的“要求”中有效定义的。处理此类塞纳里奥事件的最佳做法是什么?如果这是所需的行为,是否有方法声明类中定义的资源是该类的需求?类class\u name
中的所有资源是否需要在class['class\u name']之前有一个元参数,
编辑:以下结果将导致依赖循环
class smallest_class {
notify {'This is my smallest class':
before => Class['smallest_class'],
}
}
因此,在清单上生成一个点,我们可以看到类之间没有实际的依赖关系
有几个选项可以解决这个问题