2014-04-21 30 views

回答

1

这是可能的,但是正确的语法时才是:

默认[:mycookbook] [:attr_bar] = “#{默认[:mycookbook] [:attr_foo]}”

..essentially属性是包裹着:

“#{}”

+0

我想知道,为什么这应该更好。基本上,你只是将一个变量包装在一个字符串中。正确的语法(从ruby角度来看)是问题中的一个。从厨师的角度来看,我会说你不应该通过'默认'层级访问它,而是访问'node [:mycookbook]'。这不工作? – StephenKing

+0

虽然这可行,但它可能会导致怪异的错误和意外的行为。 变量赋值仅在Chef评估此文件时发生,因此如果覆盖attr_foo,则attr_bar的值不会自动更新以反映更改。 – avout

+0

@StephenKing:我没有尝试过,默认是在属性文件中用于赋值的语法,所以我认为它对于引用是相同的。 – DonBecker