概述
Ansible 以無代理(agentless)方式運行,無需在受管伺服器上安裝額外的軟體。它透過 SSH 連線執行命令,並使用 Python 編寫的模組來執行各種任務。您可以通過清單檔案(inventory file)定義受管主機,並使用臨時命令(ad-hoc commands)或 Playbook 來自動化任務。
主要特點
- 無代理方式(受管伺服器無需代理)
- 基於 SSH 的通訊(利用現有基礎設施)
- 使用 YAML Playbook(簡潔且易於閱讀的自動化腳本)
- 配置管理、應用程式部署、協調等各種 IT 自動化
主要選項
Ansible 命令用於在清單檔案中定義的主機群組上執行特定模組或臨時命令。
基本執行選項
資訊與除錯
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`ansible` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
您可以使用 Ansible 命令對遠端伺服器執行各種任務。
檢查所有主機連線(ping)
ansible all -m ping
測試清單中所有主機的連線可用性。
在 Web 伺服器群組上執行命令
ansible webservers -a "uptime"
在清單中的 'webservers' 群組主機上執行 'uptime' 命令。
在特定主機上安裝套件(使用 sudo)
ansible node1 -b -m apt -a "name=nginx state=present"
在 node1 主機上安裝 'nginx' 套件。使用 -b 選項進行 sudo 權限提升。
使用自訂清單檔案
ansible all -i my_inventory.ini -a "df -h"
使用 'my_inventory.ini' 檔案代替預設清單檔案,在所有主機上執行 'df -h' 命令。
指定遠端使用者複製檔案
ansible webservers -u deploy_user -m copy -a "src=./index.html dest=/var/www/html/"
以遠端使用者 'deploy_user' 連線,將本地的 'index.html' 檔案複製到遠端伺服器的 '/var/www/html/' 路徑。
安裝
Ansible 通常不包含在大多數 Linux 發行版中,因此需要透過套件管理器或 Python pip 進行安裝。透過 Python pip 安裝是最推薦的方法。
使用 Python pip 安裝(推薦)
如果已安裝 Python,您可以使用 pip 來安裝 Ansible。
- 安裝命令: pip install ansible
- 升級命令: pip install --upgrade ansible
Ubuntu/Debian
使用 APT 套件管理器進行安裝。
- 安裝命令: sudo apt update && sudo apt install ansible
CentOS/RHEL
使用 YUM/DNF 套件管理器進行安裝。可能需要 EPEL 儲存庫。
- 安裝 EPEL 儲存庫: sudo yum install epel-release
- 安裝命令: sudo yum install ansible
提示與注意事項
有效使用 Ansible 的提示和注意事項。
Ansible 使用提示
- **管理清單檔案**:系統性地對受管主機進行分組和定義非常重要。您可以使用 `ini` 或 `yaml` 格式。
- **推薦使用 Playbook**:除了簡單的臨時命令外,為了可重用性、可讀性和版本控制,建議使用基於 YAML 的 Playbook(`ansible-playbook`)。
- **理解冪等性(Idempotency)**:Ansible 的設計目標是即使多次執行任務,系統狀態也能保持一致。這稱為冪等性,在編寫自動化腳本時應利用此概念。
- **基於 SSH 金鑰的認證**:建議使用 SSH 金鑰而非密碼來增強安全性並簡化自動化流程。
- **使用 Vault**:敏感資訊(密碼、API 金鑰等)應使用 Ansible Vault 加密管理。