- Tác giả

- Name
- Nguyễn Đức Xinh
- Ngày xuất bản
- Ngày xuất bản
Cài đặt và Thiết lập Ansible: Hướng dẫn chi tiết từ Linux, macOS đến Windows
Ansible là công cụ tự động hóa hạ tầng mạnh mẽ, giúp bạn cấu hình hệ thống, triển khai ứng dụng, và quản lý server ở quy mô lớn chỉ bằng Playbooks.
Bài viết này hướng dẫn bạn: ✔ Cài Ansible trên Linux / macOS / Windows (WSL) ✔ Cấu trúc thư mục dự án ✔ Kiểm tra kết nối với server qua SSH ✔ Chạy lệnh đầu tiên với Ansible
1️⃣ Yêu cầu trước khi cài đặt
Bạn cần có:
| Thành phần | Yêu cầu |
|---|---|
| Python | >= 3.8 (thường có sẵn trên Linux/macOS) |
| Máy điều khiển (Control Node) | Linux/macOS/Windows WSL |
| Máy được quản lý (Managed Nodes) | Linux/Unix, kết nối SSH |
📌 Lưu ý: Ansible không cần cài agent trên từng server. Chỉ cần SSH và Python là đủ.
Cài đặt Ansible
Ubuntu / Debian
sudo apt update
sudo apt install ansible -y
CentOS / RHEL / Amazon Linux
sudo dnf install epel-release -y
sudo dnf install ansible -y
macOS (Homebrew)
brew install ansible
Windows (khuyên dùng WSL Ubuntu)
Bật WSL, sau đó cài như Ubuntu:
wsl --install
sudo apt update
sudo apt install ansible -y
Kiểm tra cài đặt
ansible --version
Kết quả mẫu:
ansible [core 2.16.x]
python version = 3.11.x
Tạo inventory và cấu hình SSH
📌 Tạo file inventory.ini
Ví dụ:
[web]
192.168.1.10
192.168.1.11
[db]
192.168.1.20
📌 Cấu hình SSH key
Tạo SSH key (nếu chưa có):
ssh-keygen -t ed25519
Copy key sang server:
ssh-copy-id user@192.168.1.10
Kiểm tra:
ssh user@192.168.1.10
Kiểm tra kết nối bằng Ansible
ansible -i inventory.ini web -m ping
Kết quả thành công:
192.168.1.10 | SUCCESS => { "ping": "pong" }
Chạy lệnh Ansible đầu tiên (Ad-hoc command)
Ví dụ lấy thông tin OS:
ansible -i inventory.ini all -m gather_facts --limit web
Cài đặt package nginx trên nhóm web:
ansible -i inventory.ini web -m apt -a "name=nginx state=present" --become
Cấu trúc dự án Ansible (khuyến nghị)
ansible-project/
├── inventory.ini
├── ansible.cfg
├── playbooks/
│ └── install-nginx.yml
└── group_vars/
Tạo file ansible.cfg:
[defaults]
inventory = inventory.ini
host_key_checking = False
retry_files_enabled = False
Lỗi thường gặp & cách xử lý nhanh
| Lỗi | Cách xử lý |
|---|---|
Permission denied (publickey) |
Kiểm tra SSH key, quyền user |
Không chạy được apt/yum |
Thêm --become (sudo) |
Python not found |
Cài Python trên server: sudo apt install python3 |
| Không ping được host | Kiểm tra firewall, port 22, security group |
🎯 Kết luận
Sau bài này, bạn đã biết cách:
✔ Cài đặt Ansible trên nhiều hệ điều hành
✔ Tạo inventory & cấu hình SSH key
✔ Kiểm tra kết nối với server bằng ansible -m ping
✔ Chạy lệnh ad-hoc để quản lý server
🌟 Gợi ý thực hành
Hãy thử:
1️⃣ Thêm 2 server vào inventory 2️⃣ Ping kiểm tra kết nối 3️⃣ Cài đặt nginx bằng Ansible 4️⃣ Kiểm tra xem nginx chạy chưa:
ansible web -a "systemctl status nginx" --become
