我想引用定義類型的實例內的變量。例如,我可以做些什麼來參考$x
和$y
foo a
在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']
}
我爲什麼會喜歡這個工作的原因是,一個富實例可以包含,我不會喜歡重複每一位可能需要這些資源多值。與其一次又一次地傳遞這些值,因此重複我自己,我寧願傳遞一個對它們容器的引用。
我一直在尋找所有,並嘗試了一堆東西,但似乎無法找到任何地方的這個問題的答案。我知道可以修改屬性,引用資源和讀取類屬性,但可以讀取資源/定義類型的屬性嗎?如果這不是最好的解決方法?
當然不是我希望的答案,但謝謝!我試過你的解決方法,它確實有效。我會接受你的回答,除非有人能夠在未來幾天內不需要通過hiera訪問foo.x來訪問foo.x。 –
我也很好奇,爲什麼這不可能單獨使用Puppet語言。 –
我對於爲什麼也很感興趣,所以我做了更多的挖掘並找到了一些有趣的東西 - http://docs.puppetlabs.com/guides/scope_and_puppet.html我已經更新了我的答案以包含它。 – xiankai