2014-04-27 47 views
0

我試圖讓廚師,爲我的生活的把握,我找不到如何烹調書籍運行按照什麼順序是廚師的菜譜執行

如果我有文件結構

chef-repo 
├── cookbooks 
│   └── test 
│    ├── attributes 
│    │   ├── default.rb 
│    │   └── test.rb 
│    ├── files... 
│    ├── metadata.rb 
│    ├── recipes 
│    │   ├── default.rb 
│    │   └── test.rb 
│    └── templates... 
├── roles 
│   └── starter.rb 
└── Vagrantfile 

屬性是如何加載的以及按什麼順序?例如,它加載了所有的屬性(default.rb和test.rb),默認值爲.rb總是先加載

配方如何運行?例如只運行default.rb,並且所有內容或所有內容都按字母順序運行。

我發現http://docs.opscode.com/essentials_nodes_chef_run.html但它並不解釋cookbook執行只有節點級執行。任何資源或鏈接到廚師的文檔,將不勝感激

乾杯

+1

廚師節點由角色引導;角色(最終針對每個環境)都有一個由其他角色或配方組成的運行列表,由廚師使用您在角色本身直接配置的內容以及傳遞依賴關係來確定。 –

+0

感謝那正是我所尋找的 –

+0

廚師11修正了隨機加載屬性文件的錯誤。請參閱:https://tickets.opscode.com/browse/CHEF-2903 –

回答

1

食譜在它們出現在運行列表的順序運行。只有在運行列表中出現的配方纔會被執行(加上使用include_recipe包含的所有配方。請注意,每個配方將只運行一次,即使它在運行列表中多次出現也是如此)

烹飪書的屬性文件按照這個順序加載:

  • 依賴的屬性被加載(在metadata.rb
  • attributes/default.rb
  • 按字母順序排列的所有其他attribite文件中聲明與depends即食譜

請注意,食譜中的所有屬性文件都會被加載,而不管它們的名稱如何。只有運行列表中出現的烹飪書的屬性或運行列表中的烹飪書的相關屬性纔會被加載。