Chef infra recipe.rb+;attributes.rb是';行不通

Chef infra recipe.rb+;attributes.rb是';行不通,chef-infra,Chef Infra,我对厨师是全新的,我试着让自己适应它 我已经写了一些食谱,但我总是把属性放在食谱本身。现在我正在尝试分离属性和食谱,但它不会以任何方式工作,我尝试,我不知道我做错了什么 我在C:\chef repo\vie“chef generate coobook ff_test”中创建了一个cookbook,然后通过“chef generate attribute ff_test\default”创建了attribute.rb。 现在我有了一个文件夹结构,其中default.rb在attributes中,另

我对厨师是全新的,我试着让自己适应它

我已经写了一些食谱,但我总是把属性放在食谱本身。现在我正在尝试分离属性和食谱,但它不会以任何方式工作,我尝试,我不知道我做错了什么


我在C:\chef repo\vie“chef generate coobook ff_test”中创建了一个cookbook,然后通过“chef generate attribute ff_test\default”创建了attribute.rb。 现在我有了一个文件夹结构,其中default.rb在attributes中,另一个default.rb在recipes中

#attributes\default.rb 
# Cookbook Name:: ff_test
# Attribute:: default

default['firefox']['version'] = 'latest'
default['firefox']['lang'] = 'de-DE'
default['firefox']['url'] = 'https://download-installer.cdn.mozilla.net/pub/firefox/releases/'
现在,当我尝试在另一个default.rb中访问这些属性时

#recipes\default.rb
# Cookbook Name:: ff_test
# Recipe:: default
#
# Copyright (c) 2015 The Authors, All Rights Reserved.


ruby_block "test1" do
  block do
    puts "#{node['firefox']['url']}"
  end
end
通过“chef apply recipes\default.rb”我得到以下输出

$ chef-apply recipes/default.rb
Recipe: (chef-apply cookbook)::(chef-apply recipe)
  * ruby_block[test1] action run

    - execute the ruby block test1
正如你所看到的,没有什么会被扑灭

哦,我在Windows 8.1上使用Chef:12.4.1,上面写着:

chef apply是一个可执行程序,从命令行运行单个配方


attributes/default.rb从未包含在内,因为它不是配方或配方的一部分。它是一个食谱组件。要测试烹饪书,您需要使用编译烹饪书的工具,如chef zero、chef server/chef client等。

“然后我创建了一个attribute.rb”我的意思是attributes\default.rb您可能希望使用chef log vs Ruby的“puts”进行测试:此外,使用属性/食谱似乎没有任何问题。你可以只做“puts“foo”或其他事情,以确保它的行为符合你的要求。
chef apply
旨在只运行独立的食谱。它不会以任何方式加载烹饪书,因此无法读取您的atrtibute文件。尝试
chef solo-o my_cookbook
假设cookbook在您的knife.rb或client.rb的cookbook_路径中。@Tensibai$chef solo-o ff_test/(…)[2015-09-10T16:08:26+02:00]警告:未找到配置文件:C:\chef\solo.rb,使用命令行选项。我的安装在C:\opscode\chef(和chef dk)中。我必须调整路径吗?我确信您最好阅读和