我正在向我的所有计算机发送一个带有 puppet 的特定配置文件。让我们称这个类class A
:
class A {
# ship lightdm file
file {
"/etc/lightdm/lightdm.conf":
mode => 644,
owner => root,
group => root,
ensure => file,
require => Package["lightdm"],
source => "puppet:///modules/my_module/lightdm.conf";
}
}
class A
实际上将通过其他一些类加载:
node 'somecomputer' {
include role::my_role #(will load class A)
}
现在,某些用户需要该特定配置文件的特殊版本。因此,我考虑编写一个类(除了该部分外,该类B
看起来与该类相同)并将该类包含在该特定计算机的节点配置中:A
source
node 'specialcomputer' {
include role::my_role #(will load class A)
include B
}
但是,我想知道 puppet 将如何确定最终要发送的文件。由于 puppet 中没有执行顺序,在我看来,我目前的方法不起作用(加上资源file
将被定义两次,这也不起作用)
我也不能使用继承,class A
因为class A
它包含在一些顶级类中。那么我应该如何处理这种情况呢?任何指针?