Chef Ruby遍历.erb模板文件中的属性

罐子

所以这可能有点令人困惑,但请耐心等待。简而言之,我想遍历具有特定键值的所有属性,如果值不为空,则将它们插入模板。这是我的代码:

属性:

# === Default file Configurations
#
default['elasticsearch']['default']['ES_USER']              = ''
default['elasticsearch']['default']['ES_GROUP']             = ''
default['elasticsearch']['default']['ES_HEAP_SIZE']         = ''
default['elasticsearch']['default']['MAX_OPEN_FILES']       = ''
default['elasticsearch']['default']['MAX_LOCKED_MEMORY']    = 'unlimited'
default['elasticsearch']['default']['MAX_MAP_COUNT']        = ''
default['elasticsearch']['default']['LOG_DIR']              = '/var/log/elasticsearch'
default['elasticsearch']['default']['DATA_DIR']             = '/var/lib/elasticsearch'
default['elasticsearch']['default']['WORK_DIR']             = '/tmp/elasticsearch'
default['elasticsearch']['default']['CONF_DIR']             = '/etc/elasticsearch'
default['elasticsearch']['default']['CONF_FILE']            = '/etc/elasticsearch/elasticsearch.yml'
default['elasticsearch']['default']['RESTART_ON_UPGRADE']   = ''

模板:

<% node['elasticsearch']['default'].each do |host| -%>
    <% if node.elasticsearch.default.host not nil -%>
        <%= host %>=<%= node.elasticsearch.default.host %>
<% end %>

输出(希望):

MAX_LOCKED_MEMORY=unlimited
LOG_DIR=/var/log/elasticsearch
DATA_DIR=/var/lib/elasticsearch
WORK_DIR=/tmp/elasticsearch
CONF_DIR=/etc/elasticsearch
CONF_FILE=/etc/elasticsearch/elasticsearch.yml

我的红宝石并不是最好的,因为我只是从所有这些东西开始,但是我找不到这种情况的任何例子。任何帮助将是巨大的,谢谢。

乌里·阿加西(Uri Agassi)

您可能的意思是:

<% node['elasticsearch']['default'].each do |key, value| -%>
    <% unless value.empty? -%>
        <%= key %>=<%= value %>
    <% end %>
<% end %>

遍历a时Hash将遍历其键值对。因此对于第一次迭代,key将是'ES_USER',并且value将是''(不是nil...)。

接下来,检查该值是否不是blank?,并打印出该key=value行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

遍历Chef食谱中的EncryptedDataBagItem

来自分类Dev

将Chef属性转换为Yaml时文件中包含的ruby / hash:Chef :: Node :: ImmutableMash

来自分类Dev

Ruby Chef食谱中的多个文件替换

来自分类Dev

ERB模板中的Chef换行符

来自分类Dev

Chef:将参数传递给Chef中的ruby_block

来自分类Dev

文件中的Chef属性

来自分类Dev

无法在Chef中创建用户(ruby错误)

来自分类Dev

使用Chef的Vagrant VM中的Ruby 2.2.1

来自分类Dev

Chef / Ruby:对哈希中定义的引用

来自分类Dev

Chef:从“ erb”模板追加到现有文件

来自分类Dev

在Ruby中遍历地图

来自分类Dev

Chef:如何在ruby块中增加Mixlib :: ShellOut的CommandTimout?

来自分类Dev

遍历Ruby中的嵌套哈希

来自分类Dev

将属性传递给Chef中的定义模板

来自分类Dev

Chef中节点的特定属性

来自分类Dev

Using variables in Ruby for Chef cookbook

来自分类Dev

Ruby代码块和Chef

来自分类Dev

从Web读取文本文件并分配给Ruby / Chef中的变量

来自分类Dev

有没有办法在Chef食谱中遍历node.run_state数据?

来自分类Dev

Chef Powershell从文件运行

来自分类Dev

可以从同一属性文件中引用Chef属性吗?

来自分类Dev

在Chef中实现继承

来自分类Dev

Chef中的执行顺序

来自分类Dev

Chef属性:文件名重要吗?

来自分类Dev

如何在Chef .erb文件中拆分AWS OpsWork输出字符串?

来自分类Dev

如何遍历Ruby中的对象数组

来自分类Dev

遍历数组以在Ruby中构造哈希

来自分类Dev

无法在Ruby中遍历Time对象

来自分类Dev

遍历数组以在ruby中创建变量