Git
在 Chef Solo 中從 Git 獲取特定的伺服器配置
我現在不想使用 Chef Server,而是想利用 Chef Solo。我需要將特定伺服器的配置(屬性和文件)保存在單獨的 Git 儲存庫中。這是在將配置隱藏在私有倉庫中的同時將食譜保存在開放倉庫中所必需的。
Chef 是否有內置的可能性從 Git 儲存庫獲取屬性和文件?您通常如何獲取它們?
研究使用 Berfshelf 和環境說明書模式。這種設計模式將所有食譜放在自己的儲存庫中,無論是公共的還是私有的。
具體來說,對於特定伺服器的配置,您可以在私人倉庫中使用食譜,並使用
node.set
該部落格文章中提到的配方。attributes/default.rb
或在with 語句中設置屬性,如default['foobar']['version'] = '1.2.3'
. 非私有的開放式 repo 食譜可以通過include_recipe "{open-cookbook}::{open-recipe}"
.我之前曾將這種設計模式與刀獨奏結合使用,尤其是在 0.4.x 中添加了 Berkshelf 支持之後。具體來說,我使用命令
knife solo cook someuser@localhost --sync-only
. 這將為安裝在目標機器上的廚房做好準備(下載所有 berksified 食譜,創建 solo.rb 等),但不會實際執行程式碼。或者呼叫 asknife solo cook someuser@targetnode
在目標節點上準備、同步和執行 chef-solo。