用hiera解释嵌套的yaml?
Interpretting nested yaml with hiera?
我看到了很多与此接近但与我所问的不完全相同的问题,所以请帮我解决这个问题。在我的 yaml 文件中,我有一个层次结构,例如
## application.yaml
application::params::api:
consumers:
app1:
id: 'appname1'
key: 'key1'
app2:
id: 'appname2'
key: 'key2'
然后在应用参数中
## params.pp
class application::params {
$application = hiera('application::params::api->????->app1->???->id')
}
问号是我用来 运行 到下一级层次结构的任何内容,我不确定我的分隔符应该是什么?我在我们的代码中看到了这一点,但找不到它是如何加载/调用到 hiera
的示例
我可以只使用 $application = hiera('application::params::api::app1::id')
吗?
您应该利用 create_resources function and probably use a define rather than a class 使其可重复。
示例如下:
# application/init.pp
class application {
create_resources('application::app', hiera('application::apps'))
}
# application/app.pp
define application::app(id, key) {
# do stuff with id and key
}
这是一个糟糕的例子,您的整个概念都偏离了最佳实践。但这应该通过一些研究让你到达你想要去的地方。
希望对您有所帮助。
::
符号是 Puppet 特有的,对 Hiera 没有特殊意义,但可以使用虚线键导航到详细信息。使用示例中的数据时,表达式 hiera('application::params::api.consumers.app1.id')
将 return 值 'appname1'。
关于 Hiera 的更多信息 Lookup Keys。
我看到了很多与此接近但与我所问的不完全相同的问题,所以请帮我解决这个问题。在我的 yaml 文件中,我有一个层次结构,例如
## application.yaml
application::params::api:
consumers:
app1:
id: 'appname1'
key: 'key1'
app2:
id: 'appname2'
key: 'key2'
然后在应用参数中
## params.pp
class application::params {
$application = hiera('application::params::api->????->app1->???->id')
}
问号是我用来 运行 到下一级层次结构的任何内容,我不确定我的分隔符应该是什么?我在我们的代码中看到了这一点,但找不到它是如何加载/调用到 hiera
的示例我可以只使用 $application = hiera('application::params::api::app1::id')
吗?
您应该利用 create_resources function and probably use a define rather than a class 使其可重复。
示例如下:
# application/init.pp
class application {
create_resources('application::app', hiera('application::apps'))
}
# application/app.pp
define application::app(id, key) {
# do stuff with id and key
}
这是一个糟糕的例子,您的整个概念都偏离了最佳实践。但这应该通过一些研究让你到达你想要去的地方。
希望对您有所帮助。
::
符号是 Puppet 特有的,对 Hiera 没有特殊意义,但可以使用虚线键导航到详细信息。使用示例中的数据时,表达式 hiera('application::params::api.consumers.app1.id')
将 return 值 'appname1'。
关于 Hiera 的更多信息 Lookup Keys。