用hiera解释嵌套的yaml



我看到了很多与此类似的问题,但并不完全符合我的要求,所以请帮我解决这个问题。在我的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')
}

问号是我用来运行到下一个层次结构的任何东西,我不确定我的分隔符应该是什么?我在我们的代码中看到了这一点,但找不到如何将其加载/调用到层次的示例

我可以只使用$application = hiera('application::params::api::app1::id')吗?

::表示法是Puppet特有的,对Hiera没有特殊意义,但可以使用点键导航到细节。使用示例中的数据时,表达式hiera('application::params::api.consumers.app1.id')将返回值"appname1"。

有关层次结构查找关键字的详细信息。

您应该利用create_resources函数,并可能使用define而不是类来使其可重复。

示例如下:

# 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
}

这是一个糟糕的例子,您的整个概念偏离了最佳实践。但这应该通过一些研究让你达到你想要的目标

希望对你有所帮助。

相关内容

  • 没有找到相关文章

最新更新