2016-01-19 52 views
0

中定義的配方中調用一個廚師變量/屬性我試圖在某處(可能在環境文件下)定義一個變量,並在我的配方中使用/調用它,以便我可以獲取它的值,如果我更改環境文件(已定義具有不同值的相同變量),那麼我可以使用具有不同變量值(在環境下定義)的相同配方在環境文件

有人可以幫助我理解如何定義變量/屬性在環境下,然後如何在配方文件中調用它

我試圖在環境文件中定義屬性如下

"DB_IP":"xx.xx.xx.XX","BOX_NAME":"AIX2Wd4109", 

,並試圖在配方撥打如下

BOX_NAME = json['defaults']['BOX_NAME'] 
DB_IP = json['defaults']['DB_IP'] 

但在運行knife命令值不拾取,得到錯誤如下

Chef Client failed. 0 resources updated in 5.975572324 seconds←[0m 
[2016-01-19T13:15:57+00:00] ERROR: uninitialized constant Chef::Recipe::BOX_NAME 
+0

歡迎使用stackoverflow。這些變量被稱爲[屬性](https://docs.chef.io/attributes.html)。您可以使用'node ['attribute_name']'或'node [:attribute_name]'在配方中訪問它們。您的環境文件不是環境文件的外觀。我建議遵循[learn.chef.io](https://learn.chef.io)開始。 – StephenKing

回答

0

爲了呼應上述評論是真正的答案:

訪問這些節點屬性的方式是node['DB_IP']node['BOX_NAME']

我也同意你應該繼續學習廚師教程,然後再繼續,它涵蓋了與廚師合作的基本知識。