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

Chef infra 无法访问子配方属性文件中默认厨师配方的属性,chef-infra,vagrant,cubrid,Chef Infra,Vagrant,Cubrid,我的食谱里有几个食谱,我用它们装在一个流浪汉的盒子上。每个配方都有自己的属性文件。例如: # attributes/default.rb for recipe/default.rb default['cubrid']['home'] = "/opt/cubrid" 然后: 然后在我的配方/demodab.rb中,我引用了它的属性,如: include_recipe "cubrid" CUBRID_DEMODB_DIR = "#{node['cubrid']['demodb_dir']}"

我的食谱里有几个食谱,我用它们装在一个流浪汉的盒子上。每个配方都有自己的属性文件。例如:

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

然后在我的配方/demodab.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/demodab目录。但它失败了,因为它试图创建/databases/demodab目录,这意味着未设置{node['cubrid']['home']}

如何正确引用父属性文件中设置的属性?签出=>食谱属性文件排序

使用

在您的属性/b.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
include_attribute 'cubrid'