Skip to main content

Ansible 我要知道啥

Ansible 是什麼

為了正確運行開發出來的軟體,開發人員們往往需要要花費大量的時間在伺服器上安裝所有所需的套件 (packages)、服務依賴 (dependency)以及進行組態 (configuration) 配置,而在安裝的過程中若有疏忽,還很有可能造成部署程式發生無預期的錯誤。因此,自動化就是因為這樣的需求產生的一種概念。若我們可以將每一次部署的步驟寫成一個自動化的標準作業程序,除了可以有效縮短每次的部署時間及降低出錯率外,在未來需要升級部署環境,也會相對容易許多。而 Ansible 就是目前業界最常使用的自動化工具之一。

為什麼要選擇 Ansible

目前業界中主流的自動化部署工具除了 Ansible 之外還有 ChefOtterPuppetSaltStack 等等。每一個陣營都有大量的擁護者以及各自的優缺點,其實在這個問題上並沒有誰絕對優於誰的答案。我之所以會選擇 Ansible 作為自動化的工具,主要是因為 Ansible 對我而言相較於其他工具來得容易學習許多

Ansible 的需求

  • 安裝 Python ( 2.6、2.7 or 3.5 版以上 )
  • 透過 SSH 進行連線

Ansible 的好處

  1. Python 陣營的組態管理工具
  2. 不用幫每台機器預載 agent 
  3. 市佔率較高 
  4. 易上手工具

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

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