2013-08-26 78 views
1

是否有任何方法可以將屬性傳遞給廚師烹飪書的廚師應用運行?將節點屬性傳遞給廚師應用

我的菜譜的第一行是:

if node[:my_attr][:enabled] 

導致:

NoMethodError: undefined method '[]' for nil:NilClass 

當我運行

chef-apply recipes/default.rb 

添加適當的屬性到attributes/default.rb不修復這個問題,也沒有爲添加初始化。

如何將節點屬性傳遞給廚師應用運行?

+0

是否有任何答案適合您?請不要忘記標記答案是正確的! :) – sethvargo

回答

0

在屬性/ default.rb 聲明

default['my_attr']['enabled']= "value" 

那麼你就能夠訪問他們在你的食譜

您也可以使用廚師客戶通過你的屬性值-j選項。

+0

我有我的屬性/ default.rb中定義我沒有嘗試-j選項。它是否與廚師適用? –

+0

-j選項不能與廚師應用(這是我的錯誤)。 你面臨的問題是什麼?你的屬性沒有反映在配方中? –

+1

在屬性/ default.rb中定義的屬性在通過廚師應用運行時都不會傳播到我的食譜中。在配方頂部手動定義它們確實有效,但我希望儘可能避免這樣做,以便配方可以通過廚師應用和常規廚師來運行。 –

0

亞伯拉罕P說得對。 chef-apply非常像一個shell腳本解釋器。你甚至可以對你的文件進行哈希轟炸。

#!/usr/bin/env chef-apply 

# define attributes here 

# create chef resources and other valid chef/ruby code