Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
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

Tham khảo: