我有一个与厨师(https://github.com/noha/virtual-gemstone)建立的旧项目。它使用厨师和流浪者一起来实现它的目标。这个项目在过去的几个月里已经过时了,现在我想重新激活它。但是我没有在chef 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的函数缺失。
整个项目在几个月前就开始运作了。因此,我认为我当前的chef 11设置存在根本性问题,但我找不到太多需要进行调整才能正常工作的地方。
chef不能读取属性和定义文件的原因可能是什么?
发布于 2013-07-06 17:44:11
我是在操作码列表的帮助下让它工作的。如果在食谱中使用了include_recipe,那么在metadata.rb中为包含的食谱放置一条depends语句是非常重要的。否则,无法读取属性、定义等,因此在配方内不可用。
https://stackoverflow.com/questions/17490736
复制相似问题