Chef不读取属性和定义

时间:2013-07-05 14:01:24

标签: attributes chef vagrant

我有一个与厨师(https://github.com/noha/virtual-gemstone)建立的旧项目。它使用厨师和流浪汉来实现其目标。该项目在过去几个月过时了,现在我想重新激活它。 但我没有太多运气与厨师11运行。无论我尝试什么属性/ default.rb中的值不存在。在gemstone / attributes / default.rb文件中我有

default[:gemstone][:base_url] =   "http://glass-downloads.gemstone.com/gss24"
default[:gemstone][:version] =   "GemStone64Bit2.4.4.1-x86_64.Linux"
default[:gemstone][:dir] =       "/opt/gemstone"
default[:gemstone][:log_dir] =   "/opt/gemstone/log"
default[:gemstone][:lock_dir] =  "/opt/gemstone/locks"
default[:gemstone][:user] =      "gemstone"
default[:gemstone][:no_gems] = 3
default[:gemstone][:low_port] = 7000
default[:gemstone][:cache_path] = Chef::Config[:file_cache_path]

并在gemstone / recipes / base.rb中我有

...
tmp = node[:gemstone][:cache_path]
base_url = "#{node[:gemstone][:base_url]}"
file = "#{node[:gemstone][:version]}.zip"
dir = "#{node[:gemstone][:dir]}/#{node[:gemstone][:version]}"
...

但值始终未定义/为空。我甚至尝试在属性文件中设置node.default,同时也访问配方中的值。

为了测试它,我已将所有配方.rb文件复制到单个default.rb中,并添加了属性文件中的内容。这有效,但没有抱怨我在gemstone / definitions / monit.rb中定义的一个名为monit_gem的函数缺失。

整个项目几个月前都在工作。所以我认为我目前对厨师11的设置存在根本性的错误。但是为了正常工作,我找不到需要调整的东西。

厨师不会读取属性和定义文件的原因是什么?

1 个答案:

答案 0 :(得分:14)

我得到了opscode列表的帮助。如果在配方中使用include_recipe,则必须在metadata.rb中为所包含的配方添加depends语句。否则,不会读取属性,定义等,因此在配方中不可用。