无法访问子配方属性文件中的默认Chef配方的属性

时间:2012-12-28 02:33:01

标签: chef vagrant cubrid

我的cubrid食谱中有几个食谱用于在Vagrant盒子上安装CUBRID Database。每个配方都有自己的属性文件。例如:

# attributes/default.rb for recipe/default.rb
default['cubrid']['home'] = "/opt/cubrid"

然后:

# attributes/demodb.rb for recipe/demodb.rb
set['cubrid']['demodb_dir'] = "#{node['cubrid']['home']}/databases/demodb"

然后在我的 recipe / demodb.rb 中,我引用它的属性,如:

include_recipe "cubrid"

CUBRID_DEMODB_DIR = "#{node['cubrid']['demodb_dir']}"

# create a "demodb" directory if it doesn't exist
directory "#{CUBRID_DEMODB_DIR}" do
  user "vagrant"
  action :create
  not_if "test -d #{CUBRID_DEMODB_DIR}"
end

以上内容应创建 / opt / cubrid / databases / demodb 目录。但它失败了,因为它试图创建 / databases / demodb 目录,这意味着没有设置#{node ['cubrid'] ['home']}

如何正确引用父属性文件中设置的属性?

1 个答案:

答案 0 :(得分:4)

结帐Chef Wiki => 食谱属性文件排序

使用

include_attribute 'cubrid'

在您的attributes / demodb.rb