Vagrant
在 .json 角色/環境文件中為外部(即非 Chef)應用程序儲存額外數據
我正在考慮將我的角色轉換為 JSON 語法,並在其中儲存一些額外的數據,以供外部的非廚師應用程序(特別是 Vagrant)使用。我的想法是,如果我堅持每台機器只獲得一個角色的約定,我可以讓 Vagrant 遍歷我的角色目錄並為每台機器自動配置一個單獨的 VM。
問題是不同的角色可能需要不同的 Vagrant 設置(例如 CPU、記憶體、轉發埠等),所以我想我可以將所有這些內容儲存在每個角色文件中的“vagrant”鍵下。在我的測試中,我發現我可以在這些文件中創建任何我想要的鍵,當你上傳它們時,Chef 伺服器會簡單地將它們剝離。這很好,因為唯一需要查看它們的就是 Vagrant(它只是解析本地文件)。
大家怎麼看?這是一個壞主意嗎?我看不出這怎麼可能傷害到任何東西,但由於我從未聽說過其他人會這樣做,所以我想我應該四處問問。
測試廚房是食譜測試的更好解決方案。
我不認為有任何保證會永遠持續下去——但如果它今天有效,我認為這不會很快改變。
所以這不會阻止我,但我可能無論如何都不會這樣做 - 當你想要創建一個不應該有相應 VM 的角色時會發生什麼?例如,一個基本角色從其他兩個角色中抽像出公共組件。
我更喜歡一個包含 yaml/json 文件的單獨目錄,以便 Vagrant 循環,也許按照慣例將這些文件映射到 Chef 角色。
儘管在一些細節上存在分歧,但我認為這是個好主意——你覺得效果如何?