1. 程式人生 > >[1] DevOps 自動化運維工具Chef----入門

[1] DevOps 自動化運維工具Chef----入門

最近在學習Chef, Chef 就是現在比較熱門的自動化運維工具之一,其他的工具還有Ansible, Puppet, SaltStack.  為什麼選擇Chef,是因為Chef對Window的支援非常的好。

Chef的官方網站,https://www.chef.io/. 其當前最新的版本資訊如下,

  • Chef Server版本是chef-server-core_12.8.0
  • Chef client的版本chef-client-12.13.37
  • chef 管理臺的版本是chef-manage_2.4.3 
  • chef dev kit的最新版本是0.17.17

根據百度百科的定義,Chef是IT自動化平臺,可讓客戶建立、部署、變更和管理基礎設施執行時環境和應用。Chef是平臺無關的,可以部署到雲端、本地或作為虛機(VM)。Chef也被稱為部署自動化工具和DevOps使能者,它是一款可以為不同規模企業提供許多整合選項的產品。


Chef是IT自動化平臺,可讓客戶建立、部署、變更和管理基礎設施執行時環境和應用。Chef是平臺無關的,可以部署到雲端、本地或作為虛機(VM)。Chef也被稱為部署自動化工具和DevOps使能者,它是一款可以為不同規模企業提供許多整合選項的產品。 客戶用Chef來建立、管理和部署應用棧、裸伺服器以及VM。Chef平臺主要基於客戶/伺服器。受管理的系統執行Chef客戶端,後者再利用HTTP RESTful API連線Chef伺服器。Chef伺服器包含有一個數據庫,裡面儲存有“配方”,“配方”會被打包成獨立的“食譜”,代表著執行在客戶端的獨立元件—比方說JavaWebSphere以及MySQL
等,還會保留著所有受管理機器的詳細目錄。
這些配方是用來建立部署和整合應用所需的元件的可重用建構塊的。配方會合並進上面提到過的食譜。一旦編寫或從Chef社群下載後,cookbook和recipe就可以作為模板來構建應用棧。這讓客戶可以以一致和可重複的形式建立、管理和部署環境,並且加速了這些環境的部署速度。Chef被格式用來顯著減少人工的服務開通準備工作,以及應用和資料中心資源的管理時間。 Chef的架構如下圖所示意,
Chef的主要優缺點如下(http://blog.takipi.com/deployment-management-tools-chef-vs-puppet-vs-ansible-vs-saltstack-vs-fabric/)

When to use it: Before considering Chef, make sure you’re familiar with Git, as it’s required for configuration, and Ruby, as you’ll have to be writing in it. Chef is good for development-focused teams and environments. It’s good for enterprises looking for a more mature solution for a heterogeneous environment.

Price: Free open source version, standard and premium plans priced on a per node per month basis that can get down to $6/node/month or $6.75/node/month respectively at high volume.

Pros:

  • Rich collection of modules and configuration recipes.
  • Code-driven approach gives you more control and flexibility over your configurations.
  • Being centered around Git gives it strong version control capabilities.
  • ‘Knife’ tool (which uses SSH for deploying agents from workstation) eases installation burdens.

Cons:

  • Learning curve is steep if you’re not already familiar with Ruby and procedural coding.
  • It’s not a simple tool, which can lead to large code bases and complicated environments.
  • Doesn’t support push functionality.
網上關於Chef的資料比較多,大家可以自己搜尋。筆者就不在囉嗦。 因為最近筆者在嘗試安裝最新的版本,但是網路的資料大部分都是 Chef Server 11版本的資料,而Chef 12的安裝和Chef 11的安裝還是有區別的。具體安裝請讀者參考後續文章。