產品說明
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]






![]()
