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

Chef infra 厨师:将环境变量设置为属性,chef-infra,cookbook,Chef Infra,Cookbook,我看到了一些类似问题的答案,例如如何为环境变量设置属性,或者如何在整个系统中设置环境变量。但这不是我要找的 我知道变量只能在烹饪书的上下文中使用,这很好 我只想定义一个属性,例如: default['mycookbook']['myvar'] = '3' default['mycookbook']['myvar'] = '3' 然后是我配方中的一个环境变量,如: ENV['MY_VAR'] = default['mycookbook']['myvar'] 并在配方中使用$MY_VAR 有什

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

我知道变量只能在烹饪书的上下文中使用,这很好

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

default['mycookbook']['myvar'] = '3'
default['mycookbook']['myvar'] = '3'
然后是我配方中的一个环境变量,如:

ENV['MY_VAR'] = default['mycookbook']['myvar']
并在配方中使用
$MY_VAR


有什么想法吗?

我找到了正确的语法

关于问题中给出的示例:

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

我找到了正确的语法

关于问题中给出的示例:

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

就讨论中给出的信息而言,它应该通过使用node更改默认值来工作

定义属性文件,例如:

default['mycookbook']['myvar'] = '3'
default['mycookbook']['myvar'] = '3'
然后配方中的环境变量应该是:

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

就讨论中给出的信息而言,它应该通过使用node更改默认值来工作

定义属性文件,例如:

default['mycookbook']['myvar'] = '3'
default['mycookbook']['myvar'] = '3'
然后配方中的环境变量应该是:

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

如果以后在Ruby中运行Chef时需要,可以使用node.run_state。那里的代码应该可以按照编写的那样工作。不是吗?如果以后在Ruby中运行Chef时需要,可以使用
节点。运行\u state
。那里的代码应该可以按编写的那样工作。不是吗?不要访问
default[]
,而是使用
node[]
(即
node['myokbook']['myvar']
)。不要访问
default[]
,而是使用
node[]
(即
node['myokbook']['myvar']
)。