【问题标题】:Overriding Chef Attributes In Role File在角色文件中覆盖 Chef 属性
【发布时间】:2013-12-10 09:00:38
【问题描述】:

我正在尝试使用 Chef Solo 使用 http://pastie.org/private/rfrpsjvl2ldxjky91r6zqg 之类的块覆盖 https://github.com/elasticsearch/cookbook-elasticsearch/blob/master/attributes/default.rb#L51

# filename: chef/roles/elasticsearch.rb
name "elasticsearch"
description "Args"
run_list ['recipe[java]', 'recipe[elasticsearch]']
override_attributes { "node" => { "elasticsearch" => { "bootstrap" => {  "mlockall" => false } } } }
# Also tried:
# override_attributes { "elasticsearch" => { "bootstrap" => {  "mlockall" => false } } }

这似乎是我的厨师版本中的一个错误(11.4.4issue at Google Cache, because of the opscodepocalypse

最近引入的更改为需要额外的元数据似乎有些问题,但我找不到任何参考。

如果不定义包装说明书,我该如何覆盖这些属性?

如果有人能告诉我如何使用 Chef-solo 自己调试这个问题,那么奖金?

【问题讨论】:

    标签: chef-infra chef-solo


    【解决方案1】:

    我根本无法完成这项工作,我在site-cookbooks/base/attributes/default.rb 中写了以下内容:

    override.elasticsearch[:bootstrap][:mlockall] = false
    

    似乎 Chef 11 属性解析优先级发生了很大变化:http://www.opscode.com/blog/2013/02/05/chef-11-in-depth-attributes-changes/

    【讨论】:

      【解决方案2】:

      我会试试的

      override_attributes :elasticsearch => { :bootstrap => {  :mlockall => false } } 
      

      【讨论】:

      • 不幸的是,这不起作用,显然这不是符号与字符串的问题。 :(
      • 你在elasticsearchsettings,数据包项中有东西吗?在第 11 行,它用 this 覆盖属性。顺便说一句,这可能也是一种覆盖您想要的属性的方法。
      • 很遗憾没有,没有数据包。
      • 但是您可以根据代码使用数据包覆盖设置。有关信息,请参阅Chef Solo。基本上是mkdir -p /var/chef-solo/data_bags/elasticsearch,然后在这个目录下创建一个settings.json。在 JSON 文档中,为每个节点环境添加一个条目,其中包含您要覆盖的设置。 JSON 文档的id 应该是settings
      猜你喜欢
      • 1970-01-01
      • 2015-06-06
      • 2016-02-29
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2013-06-16
      • 2013-08-16
      相关资源
      最近更新 更多