Skip to content

Ansible

現代化自動化維運工具

軟體分類 生產力 / 開發工具
軟體標籤
開發廠商 Red Hat
Stars
68.3k
Forks
24.2k
License
GNU GPL V3
Version
v2.16.2
Update
2026-03-12
OS

產品說明

Ansible 是一款開源的 IT 自動化工具,主要用於組態管理(Configuration Management)、應用程式部署與任務自動化。與 Chef 或 Puppet 不同,Ansible 採用「Agentless(不需代理程式)」架構,僅需透過 SSH(或 Windows 的 WinRM)即可遠端管理成百上千台伺服器。

它使用易讀的 YAML 格式撰寫腳本(稱為 Playbooks),讓維運流程變得像在寫文件一樣直覺。無論是更新所有主機的軟體包、部署複雜的微服務架構,還是設定防火牆規則,Ansible 都能確保所有環境的一致性,徹底告別手動 SSH 逐台操作的低效模式。

核心特色:

  • Agentless 架構:目標節點不需安裝任何額外軟體,降低維護成本與安全性風險。
  • 冪等性 (Idempotence):重複執行指令僅會處理「變動」的部分,確保系統始終處於預期狀態。
  • 易讀的 Playbooks:使用 YAML 語言撰寫,即便非開發人員也能快速理解自動化邏輯。
  • 豐富的模組庫:內建數千個模組,支援雲端平台(AWS/Azure/GCP)、資料庫、網路設備等管理。

常用指令

Ansible 的操作通常圍繞著 Inventory(清單)與 Playbook 進行:

基礎操作與測試

# 測試 Inventory 中所有主機的連通性 (Ping 模組)
ansible all -m ping

# 在所有網頁伺服器分組上執行重啟 Nginx 的指令
ansible webservers -a "systemctl restart nginx" --become

# 執行編寫好的自動化腳本 (Playbook)
ansible-playbook site.yml

# 查看主機的詳細系統資訊 (Gathers facts)
ansible hostname -m setup

# 加密敏感資料 (如密碼檔)
ansible-vault encrypt credentials.yml
常用指令功能說明使用情境
ansible-playbook執行 YAML 腳本部署應用程式或批次更改配置時
ansible-galaxy下載社群角色 (Roles)使用專家撰寫好的現成自動化模組時
ansible-inventory查看主機清單結構確認動態雲端主機或靜態 IP 分組時
ansible-vault管理加密檔案在 Git 中安全儲存金鑰或 API Token 時
–check預覽模式 (Dry Run)在正式修改前,查看會有哪些變動發生時

進階技巧

  • Inventory 分組管理:將主機依照「環境(Dev/Prod)」或「功能(DB/Web)」分組,可以精準控制自動化指令的執行範圍。

  • Role 模組化設計:將複雜的自動化流程拆解成 Roles(角色),實現程式碼的重用與結構化管理。

  • Ansible Lint:在提交代碼前使用 ansible-lint 檢查 Playbook 的語法與最佳實踐,能有效減少生產環境的執行錯誤。


操作介面

[Image of Ansible Playbook YAML structure and execution output in a terminal]