gpt4 book ai didi

puppet - 在Puppet中,如何访问已定义类型内的变量/属性?

转载 作者:行者123 更新时间:2023-12-04 23:09:00 25 4
gpt4 key购买 nike

我想在已定义类型的实例中引用变量。例如,如何在栏$x中引用foo $yab

 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实例可能包含许多我不想对可能需要它们的每个资源重复的值。与其一遍又一遍地传递这些值,而不是重复我自己,我宁愿将引用传递给它们的容器。

我一直到处寻找并尝试了很多方法,但似乎无法在任何地方找到该问题的答案。我知道可以修改属性,引用资源并读取类属性,但是可以读取资源/定义类型的属性吗?如果不是,那么最好的解决方法是什么?

最佳答案

我实际上刚刚发现Puppetlab's stdlib module包含可用于解决此问题的getparam function

所以这终于是我自己的问题的解决方案:

define foo($x, $y) {
}

define bar($foo) {
notify { getparam(Foo[$foo], 'x'): }
notify { getparam(Foo[$foo], 'y'): }
}

foo { 'a':
x => 'oh bar may you reference me',
y => 'please'
}

bar { 'b':
foo => 'a'
}

请注意,似乎不需要 require => Foo['a']中的 Bar['b']

关于puppet - 在Puppet中,如何访问已定义类型内的变量/属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19013084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com