【问题标题】:Override default cookbook chef variables覆盖默认食谱厨师变量
【发布时间】:2016-01-28 03:33:44
【问题描述】:

我正在寻找有关如何覆盖第三方说明书中的默认值的具体说明。例如,我正在使用apache_sparkcookbook (https://github.com/clearstorydata-cookbooks/apache_spark)

我想覆盖该属性 default['apache_spark']['standalone']['master_host']

我尝试制作一个主要食谱,并在其中添加 node.default['apache_spark']['standalone']['master_host'] = 'foo.com'

并使用厨师独奏执行它:

run_list(
  'recipe[main]',
  'recipe[apache_spark::spark-standalone-worker]'
)

但这似乎不起作用。关于需要如何完成的任何建议? 我的主要食谱在这里https://github.com/Vibhuti/chef-main

【问题讨论】:

  • 您的 main::default 食谱似乎是空的,并且食谱没有 attributes/ 目录。对吗?
  • 实际上它们是空的,这就是我猜 git 没有上传它们的原因。

标签: apache-spark chef-infra chef-solo


【解决方案1】:

正确的解决方法是制作一个包装说明书并在说明书的属性文件 (main/attributes/default.rb) 中设置您的值:

override['apache_spark']['standalone']['master_host'] = 'foo.com'

还要确保在 main 的 metadata.rb 添加依赖项以强制加载顺序正确:

depends 'apache_spark'

【讨论】:

  • 感谢 coderanger,看起来不错。我会尝试这样做。
  • 我通常在我公司的包装食谱中坚持默认设置,有时我们还有另一本食谱会覆盖一些雪花的包装值
  • 当您更了解合并顺序时,是的。如果您是新手,“大锤”方法通常更安全。
猜你喜欢
  • 2017-08-21
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 2015-05-04
相关资源
最近更新 更多