Chef
● 開發公司:Chef
● 網址:www.chef.io/chef
● 作業系統:Linux、Mac OS X及Windows
● 問市時間:2009年1月
● 採用公司:Rackspace、Standard Bank、Bloomberg
Chef 主要由3大元件所組成:Chef工作站、Chef伺服器和Chef節點。而一套 Chef環境則包含1個Chef Server、最少1個Chef工作站以及到1或多個 Chef節點。而付費版本的Chef Enterprise中,使用者則可以使用功能完整的控制臺、Chef分析工具以及高可用性工具等。
Chef環境的一般架設步驟為先安裝Chef伺服器,並且配置Chef工作站,而Chef伺服器與Chef工作站除可以安裝在同一臺機器上,亦可以分開配置,最後在客戶端上安裝chef-client agent並註冊為Chef節點,而節點的形式可以是實體主機、虛擬機器、Container及路由器等網路裝置。
而為了達到組態管理的功能,使用者需在Chef工作站上使用Ruby撰寫Cookbook,並且傳送至Chef伺服器。此外,安裝在節點中的chef-client agent會從Chef伺服器中取得Cookbook,確保各個節點皆符Cookbook中所設定的組態。
Cookbook是Chef的重要功能,裡面包含了 Recipe、Files及Metadata等用於部署Chef節點的元件,如Recipe用來定義對目標節點進行部署的操作細節,包含如何安裝軟體,Files則指示Cookbook如何在不同的節點、不同的平臺進行正確的部署,而Metadata則確保Cookbook正確部署在每個節點上。
透過Chef,使用者不需要了解如何手動架設環境,只要使用現有的Cookbook部署即可,而Chef具備重複部署的特點,也讓使用者不需擔心安裝軟體失敗的後果。Chef也架設了Supermarket網站,上面超過6萬名的開發者總共貢獻超過2,400份的Cookbook。此外,Cookbook也支援版本控制,根據不同版本的Cookbook,使用者可以在同一套Chef框架下部署出不一樣的環境。