覆盖默认的cookbook chef变量

Vib*_*uti 1 chef-infra chef-solo apache-spark

我正在寻找有关如何覆盖第三方食谱中的默认值的具体说明.例如,我正在使用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]'
)
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.有关如何完成的任何建议?我的主要配方是https://github.com/Vibhuti/chef-main

cod*_*ger 5

正确的解决方法是制作包装器食谱并在cookbook的属性文件(main/attributes/default.rb)中设置您的值:

override['apache_spark']['standalone']['master_host'] = 'foo.com'
Run Code Online (Sandbox Code Playgroud)

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

depends 'apache_spark'
Run Code Online (Sandbox Code Playgroud)