Chef infra 使用包装器cookbook覆盖属性

Chef infra 使用包装器cookbook覆盖属性,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我刚开始使用Chef,想在我的节点上安装Hadoop。到目前为止,我已经得到了这个非常简单的配方,但它不起作用 my-hadoop/attributes/default.rb: default['hadoop']['core_site']['fs.defaultFS'] = "Test" my-hadoop/recipes/default.rb: include_recipe "hadoop" hadoop_cookbook/attributes/default.rb:

我刚开始使用Chef,想在我的节点上安装Hadoop。到目前为止,我已经得到了这个非常简单的配方,但它不起作用

my-hadoop/attributes/default.rb:

    default['hadoop']['core_site']['fs.defaultFS'] = "Test"


my-hadoop/recipes/default.rb:

    include_recipe "hadoop"

hadoop_cookbook/attributes/default.rb:

    default['hadoop']['core_site']['fs.defaultFS'] = "hdfs://#{node['fqdn']}"
这是我读了一些博客文章后对包装器烹饪书的理解。它正在安装Hadoop,但每次都使用默认值。将默认值更改为任何其他优先级(如“覆盖”)并不能解决问题

编辑:节点的运行列表仅为“recipe[slave]”:

slave/recipes/default:

    include_recipe "my-hadoop"
include_recipe
实际上只包含食谱文件,因此厨师运行时需要一些提示,以确定加载所需食谱的顺序

您的
slave
食谱将取决于
myhadoop
。然后,
myhadoop
将依赖于
hadoop\u食谱

文件
slave/metadata.rb
depends "my-hadoop", "~> 1.5"
depends "hadoop_cookbook", "~> 1.3"
文件
myhadoop/metadata.rb
depends "my-hadoop", "~> 1.5"
depends "hadoop_cookbook", "~> 1.3"

如果您在
slave
食谱中设置了默认属性,我相信它会起作用

您的节点运行列表是什么?我在您的示例中没有看到任何错误,因此运行列表可能有问题。在我的hadoop metadata.rb中应该有一本hadoop_食谱,而在运行列表中没有hadoop_食谱。@Tensibai:我在问题中添加了一些关于这方面的信息,很抱歉再次询问,但当您运行chef时,它会显示启动时的食谱加载,关于工作的优先顺序,你应该看哈多普烹饪书,然后是我的哈多普,然后是奴隶,是这样吗?看看hadoop_cokboko是如何完成的,不要给出你为什么没有得到想要的行为的线索。我的依赖文件被弄乱了,谢谢你的提示