現代 IT 人一定要知道的 Ansible 自動化組態技巧
02. Ansible 是什麼?
在凍仁解說之前,先來聽聽大家認為的 Ansible 是什麼。
Ansible 的命名由來?
此名取自 Ansible 作者最喜愛的《安德的遊戲》1 小說,而這部小說更被後人改編成電影 -《戰爭遊戲》。2
大家或許早在電影中就已看過安塞波 (Ansible),它是虛構的超光速通訊裝置。片中主角安德 (Ender) 和他的伙伴們透過 Ansible 跨越時空指揮無數的戰艦,就好比我們操控海量的遠端伺服器一樣。
前人怎麼說 Ansible?
摘至《奔跑吧 Ansible》第 ix 頁的推薦序二。
維運自動化工具本來是用來簡化維運工作的,但如果工具本身比較複雜,甚至需要一定的程式開發能力,就會增加使用和推廣的難度。Ansible 有三個最吸引人的地方:無客戶端、簡單易用和日誌集中控管。
Ansible 很簡單,上手方便,不需要啃一本很大本的書才能學會使用 (從這一點來看,這可謂業界良心)。
- 蕭田國 (開放運維聯盟聯合主席,高效運維社區發起人)
摘至《奔跑吧 Ansible》第 xxiii 頁的原書推薦序。
我希望自動化的事情盡快完成,這樣我就能有更多時間投入在我更該關注的事情上面。Ansible 並不是一個你需要整天和它打交道的系統。你可以很快地把它拿起來,很快地搞定,然後又很快地回到你更該關心的事情上面。
我希望這些也會成為你喜歡 Ansible 的原因。
- Michael DeHaan (Ansible 軟體的創作者,Ansible, Inc. 前 CTO)
摘至 Red Hat 併購 DevOps 新秀 Ansible | iThome 一文。
凍仁心中的 Ansible 又是什麼?
- Python 陣營的組態管理工具!個人對 Python 熟悉度大於 Ruby。3
- 不用幫每台機器 (instance) 預載 agent 4,只要有 SSH 和 Python 就可以闖天下!
- 在台灣的市佔率較高 5:找得到前人可以問,甚至還有工作坊 (workshop) 的課可以聽!
- 在目前 4 大主流的組態管理工具 (Puppet, SaltStack, Chef, Ansible) 中, Ansible 是最容易上手,且馬上就可以用的工具。(自己說)
使用 Ansible 需要具備什麼基礎知識?
- 具備 Linux 伺服器 (server) 基礎操作和管理經驗。
- 會使用 ssh 遠端連線至 server。
- 知道基本的標準輸入 (stdin) 輸出 (stdout) 等觀念。6
- 會安裝 Linux 套件。7
- 知道
sudo
指令在做什麼,並且會使用它。8 - 知道什麼是檔案權限,並且會修改它。
- 知道如何啟用和停止系統服務 (Daemon / Service)。
- 會撰寫簡易的腳本 (Script)。
您已成功踏入 Ansible 的大門,恭喜你!
相關連結
1. 戰爭遊戲,又名安德的遊戲 (Ender's Game),是「奧森·斯科特·卡德」最著名的科幻小說,曾在 2013 年於大銀幕上映。 ↩
2. Ansible 命名的由來可參考《奔跑吧 Ansible》和 Ansible FAQ | Ji ZHANG's Blog 一文。凍仁早在 2013 年就在電影院的大銀幕上看過 Ansible,但一直到了 2016 年才真正的了解它。 ↩
3. 組態管理工具要怎麼選?依據分類帽大概可分粗分為 Python 學院 (Ansible, SaltStack) 和 Ruby 學院 (Chef, Puppet)。 ↩
4. 就業務面而言,有時的環境是不容許安裝 agent 的。 ↩
5. 在 2016/11/23 的 DevOps Taiwan Meetup #3 - 配置管理工具大亂鬥 (CM 大亂鬥) 活動裡,Ansible 是現場最多人使用的組態管理工具! ↩
6. 標準輸入輸出可參考 STDIN、STDOUT、STDERR 與 Bash Redirection 測試 - Tsung's Blog 一文。 ↩
7. 套件管理可參考 [完全用 GNU/Linux 工作] 04. 套件管理 | 凍仁的筆記一文。 ↩
8. sudo 可參考 sudo 指令使用說明 | 凍仁的筆記 一文。 ↩