Chef:使用另一个属性的值定义一个属性

时间:2018-12-05 10:31:53

标签: chef chef-recipe chef-attributes

在我的环境文件中,我定义了一个属性

['app'] ['web'] ='nginx'

和其他环境文件中

['app'] ['web'] ='apache'

我的意图是创建可以在任何环境下运行的配方。在配方中,我正在定义一个属性。因此,在第一个环境中运行此配方时,我要定义node.default ['cluster'] ['nginx'] ['endpoint'],在第二个环境中,它应为node.default ['群集'] ['apache'] ['端点']

我使用了以下

node.default ['cluster'] [node ['app'] ['web']] ['endpoint']

但这不起作用。我有什么办法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

由于您未指定属性type,很难为您提供具体答案。属性类型与属性precedence一起将确定node['app']['web']是否在厨师客户compilation phase处保持非零值

答案 1 :(得分:0)

有关解决方法,请参见https://github.com/poise/poise-derived。更多字符,因为我必须这样做。