Chef

廚師最佳實踐 - 評估/挑選食譜

  • October 17, 2015

顯然,Chef 最好的事情之一就是通過說明書重用經過驗證的組件,尤其是通過包裝說明書的方法。

但是,您如何選擇要包裝的食譜?一些浪費了我大量時間的例子。

  • 一本食譜,其配置 erb 帶有硬編碼的過時標誌,而不僅僅是棄用標誌。服務拒絕配置文件。注意:據我了解,包裝一個更正的模板 erb 並非易事,除非你複製和維護整個東西。
  • 一本檢查 Ubuntu 版本高達 9.0.4 的食譜,似乎在此之上沒有做任何事情,並且引用了過時的 /etc/event.d/ 目錄。
  • 食譜與 runit 或 bluepill 等過程監督工具有很強的耦合性。如果您的首選工具不在列表中並且您無法對此進行調整,這也是令人頭疼的原因。

迄今為止,我傾向於使用 Supermarket.chef.io 的食譜,而且大部分都有效。除了我想要的服務的食譜似乎沒有維護並且可以採用。

一些想法:

  • 檢查最近的 github 送出/最後更新時間。但是,如果它只是有效呢?那麼它不應該被更新。
  • 星星。但是如果星星都是很久以前發行的,而食譜是最新的呢?
  • 檢查未關閉的 github 問題。可能會更好。
  • 提前查看食譜和屬性。但是,如果您已經知道目標軟體的設置,效果會更好。
  • 查看貢獻者的數量並評估它是一個快速的副項目還是可能會繼續維護。
  • 執行它並查看錯誤類型。我首先選擇的那些在我看來就像沒有跟踪作業系統或他們管理的程序的最新更新但沒有基於屬性的靈活性來允許它的食譜。
  • 某處有評級網站嗎?Google搜尋讓我找到了烹飪網站

對不起,我意識到這個問題本質上是廣泛的。但可以肯定的是,如果重用是 Chef 生態系統的目標,那麼明智地選擇最好的社區食譜進行包裝是最終使用者成功的關鍵因素。除了使用 Chef 本身的任何技術技能。

你怎麼做呢?你的啟發式方法是什麼?

github 上大量的 me-too 食譜讓我覺得這不是一個已解決的問題。

我個人是先看超市的下載量,然後直接看github頁面。如果源不在公共版本控制中,我繼續。

在查看程式碼時,我真的只是快速瀏覽了一下自己以下問題:

a) 這本食譜只做一件事嗎

如果它是一本安裝應用程序的食譜,這就是我想要它做的所有事情。我不希望它與系統的其餘部分混為一談。(例如:觸摸物理磁碟、ebs 卷等…)

b) 如果我使用這本食譜,它可以擴展嗎

如果它是公開資源的圖書館食譜,我希望這些資源能夠對其使用的任何子資源提供足夠的控制。我無法忍受為狹窄案例創建模板的資源,但不允許我充分修改模板源或模板變數。

如果它是基於食譜的食譜,那麼我希望大多數相關位都可以通過屬性進行配置。我並不完全介意包裝食譜,但如果我可以設置一些屬性而不是過多地包裝其他資源,我會非常高興。

引用自:https://serverfault.com/questions/726345