作者 主題: CHEF 概念分享  (閱讀 958 次)

0 會員 與 1 訪客 正在閱讀本文。

HaWay

  • 大隻佬!
  • 區域板主
  • 俺是博士!
  • *****
  • 文章數: 3971
    • 檢視個人資料
CHEF 概念分享
« 於: 2015-11-14 12:42 »
因為最近在了解 DevOps 的東西, 看到了 Chef, 所以研究了一下, 大致上做個筆記, 講一些入門概念
讓大家了解一下 Chef 是幹嘛的, 在了解之後, 比較好評估導入是否對企業有幫助.

所有的文章概念, 都來自 Chef 官網 :  https://www.chef.io/chef/

本文不會講太深入的技術跟概念, 屬於一篇入門的文章, 所以很短, 快速看完有興趣再了解就好了.

Chef:
0. 幹嘛用的?
 基本概念就是: 把所有基礎建設(Server/Switch/Firewall 等) 透過網路來進行部署與控制.

 特殊名詞:
 食譜 = Cookbooks, 你就想他是一個 shell scripts, 只是語言是 Ruby


1. 基本角色
 * Workstations
 * Chef Server
 * Nodes
 * Chef Analytics
 
 這四個角色裡面各包含了很多元件, 譬如 WebUi, Cookbooks, rules, run-list, recipes 等 或 指令 chef-client, knife, 等
 每一個元件都一定是某一個角色中的功能, 所以先了解角色, 看到元件是放在哪個角色, 大致上就知道是幹嘛的

2. Workstations
 用來控制 Chef Server 的電腦, 管理者透過 Workstations 來控制全部的基礎建設, 通常是自己的電腦,
 要怎麼控制呢? 就是透過撰寫 食譜 來完成. Workstations  主要進行下列兩項工作:

 (1) 撰寫食譜(cookbooks), 並上傳到 Chef Server
 (2) 透過 Chef Server 控制 Nodes

 譬如: 管理者在 Workstations 撰寫了一個 apache2 + mysql 安裝腳本, 寫好之後放到 Chef Server 上, Cher Server 會
 對這個腳本進行版本控制(不確定內建是否為 Git), 然後管理者透過 Workstations 就可以直接指定某個 Node 去執行這個腳本,
 於是 Chef Server 就會連線到這個 Node(好像是透過 ssh), 然後在 Node 去執行這個 cookbook, 於是管理者就在 Workstations
 完成了某個 node 的 apache2 + mysql 安裝部屬了.

3. Chef Server
 用來接受 WorkStations 的食譜, 管理食譜, 命令 Node 執行食譜, 接收 Nodes 的狀況進而進行監控.

 Chef 的部分目前還沒看很詳細, 大致上他就是一個 中央管控 的地方, Workstations, Analytics, Node 都會透過 Chef Server
 進行溝通, Node 回傳的狀況會傳送到 Chef Analytics 分析.
 Chef Server 裡面的元件主要都是跟管控有關的, 譬如 cookbooks 管理, run-list, policy, secrets.

4. Nodes
 又叫 Chef-Client, 任何可以跟 Chef Server 連線的都叫 Node, 舉凡 實體機器, 網路設備, 虛擬機器, 雲端伺服器等, 只要他
 可以跟 Chef Server 溝通, 都可以算是一個 Node, 通常是安裝了 Chef-Client 套件. Nodes 會接收 Chef Server 的指令(其實是
 WorkStation 下的), 執行食譜, 然後出菜(完成), 再來會跟 Chef Server 溝通.

所以當你有數百台 Server 需要快速安裝軟體, 部屬設定檔, 啟動 Service, 自動化流程的時候, 要先寫好你的 cookbooks
當有新機器時, 安裝好 Chef-Client 然後推上機架, 接上網路線, 接者快快樂樂回到座位用 Chef(Workstation) 來完成接下來的事情.

大致上來說這就是 Chef. 細項技術的部分各位有興趣再自行研究了 ^_^
 
我做人那麼 nice, 肯定有什麼誤會.....

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17292
    • 檢視個人資料
    • http://www.study-area.org
Re: CHEF 概念分享
« 回覆 #1 於: 2015-11-14 22:06 »
讚啦!

來講一場吧,大大....

sakana

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 2582
  • 性別: 男
    • 檢視個人資料
    • sakananote
Re: CHEF 概念分享
« 回覆 #2 於: 2015-11-16 06:16 »
我們兩個可以交互講
我講 Ansible 你講 chef
^^
專心投入研究才是王道!!
http://sakananote2.blogspot.com

HaWay

  • 大隻佬!
  • 區域板主
  • 俺是博士!
  • *****
  • 文章數: 3971
    • 檢視個人資料
Re: CHEF 概念分享
« 回覆 #3 於: 2015-11-16 09:12 »
我已經把全部我會的都貼上來了, 因為是大概看一下而已, 所以沒有去研究技術的部份 XD
我做人那麼 nice, 肯定有什麼誤會.....