2013-03-13 50 views
1

查询数据包以设置节点属性时可以执行以下操作吗?厨师 - 数据包查询

我有一系列匹配我本地节点['fqdn']属性的数据包项目。

是否有可能将此属性动态插入到数据包查询字符串中,下面的示例不起作用,还有其他想法?

default['test']['attribute'] = Chef::DataBagItem.load('databagname', '<%= node[:platform_version] %>')['test']['bag']['location'] 

回答

1

DataBagItem.load方法返回一个databag对象。所以,我通常将返回的数据包对象存储到一个临时变量中,然后从数据包中获取我想要的项目,就像使用散列一样。例如:

temp = Chef::DataBagItem.load('databagname', node.platform_version) 
node.default['test']['attribute'] = temp['id'] 

您可以与您databag的必需元素取代ID。另一方面,如果你的意思是将钻孔数据库存储在一个属性中,我还没有尝试过,我不知道它是否可能。