4

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

# 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']}没有设置。

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

4

1 回答 1

4

查看Chef Wiki => Cookbook 属性文件排序

利用

include_attribute 'cubrid'

在你的属性/demodb.rb

于 2012-12-28T09:25:47.633 回答