Tanımlanan türlerin örneklerinin içindeki değişkenlere başvurmak istiyorum. Örneğin, ne barda b
ece'nin a
arasında $x
ve $y
başvurmak yapabilirim? İşe bu istiyorum nedenKukla'da, tanımlanmış türde bir değişkene/özniteliğe nasıl erişebilirim?
define foo($x, $y) {
}
define bar($foo) {
notify { "${::$foo::x}": } # <- how to make this reference work?
}
foo { 'a':
x => 'oh bar may you reference me',
y => 'please'
}
bar { 'b':
foo => Foo['a'],
require => Foo['a']
}
nedeni foo örneği Her onları gerekebilir her kaynak için tekrarlamak istemez birçok değerleri içeren olabilmesidir. Bu değerleri bir kez daha tekrarlamak yerine, kendimi tekrarlamak yerine, konteynerine bir referans göndermeyi tercih ederim.
Bütün bakan ve bir sürü şey denedim ama her yerde bu soruya bir cevap bulmak için görünmüyor olabilir oldum. Öznitelikler, referans kaynakları ve sınıf özniteliklerini değiştirmek mümkün olduğunu biliyorum, ancak bir kaynağın/tanımlanmış türün niteliklerini okumak mümkün mü? Öyleyse o zaman mümkün olan en iyi çalışma nedir?
Kesinlikle ben, ama teşekkür için umuyordum cevap! Geçici çözümünü denedim ve işe yarıyor.Foo.x'in sonraki birkaç gün içinde hiera yoluyla erişilebilmesi şartı olmadan bir başkasının foo.x'a erişme yolu ile gelemediği sürece, cevabınızı benimle kabul ediyorum. –
Bunun sadece Kukla dilini kullanarak neden mümkün olmadığını merak ediyorum. –
Ayrıca neden bu kadar ilgileniyorum, bu yüzden biraz daha fazla araştırma yaptım ve ilgimi çeken bir şey buldum - http://docs.puppetlabs.com/guides/scope_and_puppet.html Cevabımı içerecek şekilde güncelledim. – xiankai