iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
DevOps

不爆肝學習 Ansible 的短暫30天系列 第 1

Day 01 – 為什麼要使用 Ansible?

  • 分享至 

  • xImage
  •  

今日目標

  • 了解 Ansible 的基本概念
  • 知道自動化部署帶來的好處
  • 思考 Ansible 可以解決哪些問題

情境故事

讓筆者用一個情境故事來說明 Ansible 可以帶來的價值是什麼。

假設主管委託你做一件任務是『我們有三台伺服器,需要同時安裝套件,配置設定檔案』。

那你會怎麼做呢?

很多人的第一反應可能會是:

  1. 一台台機器手動開好,並且配置好 SSH 金鑰。
  2. 然後一台台登入,執行安裝指令,修改設定檔案。
  3. 最後在一台台重啟服務。

當然,這樣的做法的確可以完成任務,但如果又有新的 Server 加入或者是設定又要變更呢?

這時候的你最需要的就是 Ansible 了!

核心概念

簡單來說,Ansible 是一個透過 YAML 語言來描述整個流程的自動化工具,可以幫你完成:

  1. 一次控制多台機器。
  2. 不需要安裝任何 agent,只需要透過 SSH 連線即可。
  3. 因為具有冪等性,所以可以確保每次執行結果一致。

實作範例

說了這麼多,就讓我們來看一個超簡單的範例吧。

如果我們現在有三台機器,我可以怎麼快速確認這三台是否可以 PING 到呢?

先用使用本機的方式快速測試(不需要 inventory 檔案):

ansible all -i localhost, -c local -m ping

若使用 inventory.ini,可像下面這樣設定:

[all]
192.0.2.10 ansible_user=ubuntu
192.0.2.11 ansible_user=ubuntu
192.0.2.12 ansible_user=ubuntu

然後執行:

ansible all -i inventory.ini -m ping
  • all:代表要對 inventory.ini 裡面定義的所有主機執行任務。
  • -i inventory.ini:指定使用的 inventory 檔案。
  • -m ping:使用 ping 模組來確認連線。
192.0.2.10 | SUCCESS => {
  "changed": false,
  "ping": "pong"
}

重點整理

  • 使用 YAML 描述流程、簡潔易讀、學習成本低。
  • 透過 SSH 操作,無需安裝 agent,導入容易。
  • 具備冪等性,重複執行結果一致,降低人為錯誤。
  • 可一次控制多台主機,節省時間、提升一致性。

作業練習時間

大家可以想一想,在你的生活或工作中,有哪三種情況是可以使用 Ansible 來解決的呢?可以在留言區分享你的想法,或者是直接在你的筆記裡面寫下來。

  • 例如:同時替多台機器安裝相同套件
  • 例如:批次修改多台機器的設定檔
  • 例如:自動化部署應用程式到多台伺服器

明日預告

明天就讓我們來將 Ansible 安裝起來,並且完成一個自己的自動化流程吧!


下一篇
Day 02 – 安裝 Ansible
系列文
不爆肝學習 Ansible 的短暫30天3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言