パペットを含む特定の構成ファイルをすべてのコンピューターに出荷しています。このクラスを呼び出しましょう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
}
ただし、パペットが最終的にどのファイルを出荷するかをどのように決定するのか疑問に思っています。パペットには実行順序がないため、現在のアプローチが機能しないように思えます (さらに、リソースfile
が 2 回定義されますが、これも機能しません)。
いくつかのトップレベルクラスに含まれているclass A
ため、継承も使用できません。class A
では、この場合はどのように対処すればよいのでしょうか。ポインタはありますか?