Chef是開源的配置管理工具。其實現機製為:用戶使用Ruby語言將需要對設備進行的配置寫成腳本,並保存到服務器中,再通過服務器把配置腳本下發到各網絡設備,實現對網絡設備的集中配置管理。
圖1-1 Chef網絡架構
如圖1-1所示,Chef采用“服務器端/客戶端”網絡架構,由Chef server、Chef client和Workstation構成。
Chef server用於對Chef client進行集中管理,其主要功能如下:
· 集中保存配置腳本(Cookbook),並根據用戶要求將配置腳本下發到Chef client。
· 為Chef client和Workstation分別創建後綴為.pem的密鑰文件。
Workstation提供了用戶與Chef server交互的接口。用戶需要在Workstation上創建、編輯配置腳本,並將配置腳本上傳到Chef server。
Workstation可以與Chef server安裝在同一台服務器上。
Chef client即為被Chef server管理的網絡設備。Chef client從Chef server獲取並運行配置腳本,配置腳本運行完成後,設備使用新下發的配置運行。
H3C設備作為Chef client運行,支持版本12.3.0。
Chef使用Ruby語言定義配置項,各配置項的集合即為一個配置腳本,在Chef中,配置項叫做資源。
Chef劃分了多個不同類型的資源,每個類型的資源都由名稱、屬性和動作構成,每個屬性對應功能的一個配置,屬性值即為該配置應達到的狀態。在對Chef資源進行配置時,通過為不同屬性賦值,從而指定設備應該達到的最終狀態,而不需要關心如何達到這些狀態。
H3C定義了一係列Chef資源,Chef server可以在配置腳本中使用這些資源對設備進行配置。