Chef:将环境变量设置为属性

Chef: set an environment variable to an attribute

看到了一些类似问题的回答,比如如何给环境变量设置一个属性,或者如何在整个系统中设置一个环境变量。但这不是我要找的。

我知道这些变量只能在说明书的上下文中使用,这很好。

我只想定义一个属性,比如:

default['mycookbook']['myvar'] = '3'

然后是我的食谱中的环境变量,例如:

ENV['MY_VAR'] = default['mycookbook']['myvar']

并有 $MY_VAR 可在食谱中使用。

有什么想法吗?

我找到了正确的语法。

对于题中给出的例子:

ENV['MY_VAR'] = default['mycookbook']['myvar']

就所提供的信息而言,通过更改节点的默认值应该可以像这样工作。

定义一个属性文件,如:

default['mycookbook']['myvar'] = '3'

然后是配方中的环境变量,应该是这样的:

# not "default['mycookbook']"['myvar']
ENV['MY_VAR'] = node['mycookbook']['myvar']