Chef
在食譜本身中安裝食譜的依賴項?
在執行食譜時,我需要使用外部依賴項。我看到 2 個選擇來解決它:
include_recipe
在我的食譜裡面使用。在這種情況下,使用者可能會因為安裝了額外的軟體包而感到意外(或者以不同於他預期的方式安裝它們)。- 將其聲明為依賴項,但將其留給使用者程式碼進行安裝。在這種情況下,使用者將無法立即使用我的食譜,並將被迫
run_list
明確將其包含在內。對此有何看法?對於像 Maven 這樣的其他依賴管理系統,依賴有自己的(傳遞的)依賴是可以的,但是使用者總是可以覆蓋它的版本或排除它,這樣他就可以控制所有的傳遞依賴。在廚師中不確定這一點。
這取決於具體情況。如果您在 README 中明確說明並且有充分的理由,那麼您可以將其留給您的說明書的使用者在包裝說明書或角色中添加依賴項。
但是,對於大多數情況,我希望所有依賴項都在其中聲明,
metadata.rb
並且先決條件由應用程序說明書安裝。這使得在Berkshelf和Test-Kitchen的幫助下執行食譜變得更加容易。