iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 2
0

現代 IT 人一定要知道的 Ansible 自動化組態技巧

02. Ansible 是什麼?

在凍仁解說之前,先來聽聽大家認為的 Ansible 是什麼。

automate_with_ansible_basic-07.jpg

Ansible 的命名由來?

此名取自 Ansible 作者最喜愛的《安德的遊戲》[^1] 小說,而這部小說更被後人改編成電影 -《戰爭遊戲》。[^2]

大家或許早在電影中就已看過安塞波 (Ansible),它是虛構的超光速通訊裝置。片中主角安德 (Ender) 和他的伙伴們透過 Ansible 跨越時空指揮無數的戰艦,就好比我們操控海量的遠端伺服器一樣。

automate_with_ansible_basic-08.jpg

前人怎麼說 Ansible?

摘至《奔跑吧 Ansible》第 ix 頁的推薦序二。

維運自動化工具本來是用來簡化維運工作的,但如果工具本身比較複雜,甚至需要一定的程式開發能力,就會增加使用和推廣的難度。Ansible 有三個最吸引人的地方:無客戶端、簡單易用和日誌集中控管。

Ansible 很簡單,上手方便,不需要啃一本很大本的書才能學會使用 (從這一點來看,這可謂業界良心)。

- 蕭田國 (開放運維聯盟聯合主席,高效運維社區發起人)

摘至《奔跑吧 Ansible》第 xxiii 頁的原書推薦序。

我希望自動化的事情盡快完成,這樣我就能有更多時間投入在我更該關注的事情上面。Ansible 並不是一個你需要整天和它打交道的系統。你可以很快地把它拿起來,很快地搞定,然後又很快地回到你更該關心的事情上面。

我希望這些也會成為你喜歡 Ansible 的原因。

- Michael DeHaan (Ansible 軟體的創作者,Ansible, Inc. 前 CTO)

摘至 Red Hat 併購 DevOps 新秀 Ansible | iThome 一文。

automate_with_ansible_basic-09.jpg

凍仁心中的 Ansible 又是什麼?

  1. Python 陣營的組態管理工具!個人對 Python 熟悉度大於 Ruby。[^3]
  2. 不用幫每台機器 (instance) 預載 agent [^4],只要有 SSH 和 Python 就可以闖天下!
  3. 在台灣的市佔率較高 [^5]:找的到前人可以問,甚至還有工作坊 (workshop) 的課可以聽!
  4. 在目前 4 大主流的組態管理工具 (Puppet, SaltStack, Chef, Ansible) 中, Ansible 是最容易上手,且馬上就可以用的工具。(自己說)

automate_with_ansible_basic-10.jpg

使用 Ansible 需要具備什麼基礎知識?

  1. 具備 Linux 伺服器 (server) 基礎操作和管理經驗。
  2. 會使用 ssh 遠端連線至 server。
  3. 知道基本的標準輸入 (stdin) 輸出 (stdout) 等觀念。[^6]
  4. 會安裝 Linux 套件。[^7]
  5. 知道 sudo 指令在做什麼,並且會使用它。[^8]
  6. 知道什麼是檔案權限,並且會修改它。
  7. 知道如何啟用和停止系統服務 (Daemon / Service)。
  8. 會撰寫簡易的腳本 (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 指令使用說明 | 凍仁的筆記 一文。


上一篇
01. 前言
下一篇
03. 怎麼部署 Ansible 環境?
系列文
現代 IT 人一定要知道的 Ansible 自動化組態技巧31

尚未有邦友留言

立即登入留言