我有一个厨师系统,我们有多个环境,并在环境JSON中设置属性。
我无法从cookbook属性文件和食谱中访问这些菜单。
你的环境文件是什么样的? 你正在设置默认或覆盖属性? 如果您设置了默认值,请注意属性链中的优先级相当低,因此可能会被配方或angular色覆盖。
属性的优先级从低到高依次为:
以上来自:
最后,我能够在厨师食谱中使用环境的属性。 比方说,我们有这样的环境:
{ "name": "QA", "description": "QA environment", "cookbook_versions": { }, "json_class": "Chef::Environment", "chef_type": "environment", "default_attributes": { "comp_rsyslog": { "filetag_env": "compqa" } }, "override_attributes": { } }
我们需要使用服务的模板configuration文件中的filetag_env属性来传递环境属性。
我在conf文件中的做法是这样的:
$InputFileTag <%= node['comp_rsyslog']['filetag_env'] %>,<%= node['rsyslog']['filetag1'] %>
在配方属性的文件中定义了<%= node['rsyslog']['filetag1'] %> :
default['rsyslog']['filetag1'] = 'comp_service'
结果将是/etc/rsyslog.d/comp_service.conf一个文件,其内容如下所示:
$InputFileTag compqa,comp_service.
现在正确的顺序, 从厨师文件站点 :