定義された型のインスタンス内の変数を参照したいと思います。たとえば、foo a
の$x
と$y
をバーb
で参照するにはどうすればよいですか?Puppetでは、定義された型の中の変数/属性にどのようにアクセスできますか?
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']
}
私は仕事にこれを希望する理由は、fooのインスタンスが、私はそれらを必要とするかもしれません一人ひとりのリソースに繰り返したくない多くの値が含まれていてもよいということです。これらの値を何度も渡す代わりに、自分自身を繰り返して、私はむしろそれらのコンテナへの参照を渡すでしょう。
私は何度も探していて、たくさんのことを試しましたが、どこでもこの質問に対する答えを見つけることはできません。属性、参照リソース、および読み込みクラス属性を修正することは可能ですが、リソース/定義型の属性を読み取ることは可能ですか?それは最高の可能性のある回避策は何ですか?
確かに私が望んでいた答えではありませんでしたが、ありがとう!私はあなたの回避策を試して、それは動作します。foo.xが次の数日以内にhieraを介してアクセスできるという要件なしに誰かがfoo.xにアクセスする方法を考え出すことができない限り、私はあなたの答えを受け入れます。 –
私はまた、これがなぜPuppet言語だけでは不可能なのか不思議です。 –
私はまた、なぜか興味を持っているので、もう少し掘り下げて興味のあるものを見つけました。http://docs.puppetlabs.com/guides/scope_and_puppet.html私は答えを更新しました。 – xiankai