首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Puppet 5迭代哈希

Puppet 5迭代哈希
EN

Stack Overflow用户
提问于 2020-07-04 16:41:37
回答 1查看 235关注 0票数 0

如何使用迭代在Puppet 5中的hiera下迭代(未定义资源)

使用更多信息进行编辑

我想创建一个文件,将配置文本作为传递给模板的内容

这是我正在做的事情。

海埃拉

代码语言:javascript
运行
复制
appname::app_config:
  "/tmp/application.properties":
    config_text:
      - "# First Line"
      - "Second Line"
      - ""
      - "So forth"

  "/tmp/database.properties":
    config_text:
      - "Test Line"
      - "Another Test Line"

hiera木偶迭代配置

代码语言:javascript
运行
复制
  $appname_config.each | $config_file, Hash $config_text| {
    file { "$config_file" :
      ensure => present,
      content => template('modulename/generic_config.epp'),
      }
    }

模板

代码语言:javascript
运行
复制
<% @config_text.each do |key, value| -%>
<% value.each do |key,value| -%>
<%= key %>
<% end %>
<% end -%>

但我被要求使用下面的格式hiera

代码语言:javascript
运行
复制
appname::app_config:
  file: "/tmp/dummy.config"
  config_text:
        - "Application Properties"
        - "TimePeriod = 1"
 
   file: "/tmp/second.txt"
   config_text:
        - "Application Properties"
        - "TimePeriod = 1"

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-07-05 02:47:22

第一个块中的任何内容都不会返回,例如,文件只会返回散列,这是一个哈希值,而您有重复的键,因此它将被覆盖。为了更好地了解发生了什么,您可能希望运行以下命令

代码语言:javascript
运行
复制
class appname  (
  $app_config
){
  notify { $app_config[file]: }
  $app_config[config_text].each |$item| {
    notify { $item: message => $item }
  }
}

它是一个散列,所以你可以使用它的键访问其中的任何东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62727077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档