我想引用定义类型的实例内的变量。例如,我可以做些什么来参考$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