我有一个与厨师(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的设置存在根本性的错误。但是为了正常工作,我找不到需要调整的东西。
厨师不会读取属性和定义文件的原因是什么?
答案 0 :(得分:14)
我得到了opscode列表的帮助。如果在配方中使用include_recipe,则必须在metadata.rb中为所包含的配方添加depends语句。否则,不会读取属性,定义等,因此在配方中不可用。