Bài 14: Ansible Tower/AWX – Trung Tâm Điều Khiển DevOps

Sau khi dùng Ansible Vault DevOps ở bài trước, mình đã thấy Vault bảo vệ thông tin nhạy cảm “chắc chắn” thế nào – kiểu như “két sắt” cho API key. Nhưng hồi đó, khi đội mình lớn dần, quản lý playbook bằng lệnh ansible-playbook trên terminal bắt đầu trở thành ác mộng: ai chạy, chạy lúc nào, playbook nào, đều không kiểm soát được. Rồi mình phát hiện Ansible Tower AWX DevOps, và đúng là “trung tâm điều khiển” cho DevOps! Hôm nay, mình sẽ kể bạn nghe Ansible Tower AWX DevOps là gì, cách dùng AWX (phiên bản miễn phí của Tower) để quản lý Ansible quy mô lớn, và cùng thực hành chạy playbook qua giao diện web. Cùng bắt đầu nhé!

Ansible Tower AWX Là Gì? – “Trung Tâm Điều Khiển” Của Ansible

Nói đơn giản, Ansible Tower AWX DevOps là công cụ quản lý Ansible tập trung, giúp bạn chạy playbook, theo dõi trạng thái, và phân quyền cho cả team qua giao diện web. Ansible Tower là phiên bản thương mại (trả phí), còn AWX là phiên bản mã nguồn mở (miễn phí) – chức năng gần giống nhau, nhưng AWX phù hợp để thử nghiệm. Bạn có thể tưởng tượng AWX như “trung tâm điều khiển” – thay vì chạy lệnh trên terminal, bạn quản lý mọi thứ qua dashboard, từ chạy playbook, xem log, đến phân quyền user.

Hồi đội mình có 5 người, mỗi người chạy playbook trên máy riêng, không ai biết ai làm gì. Có lần một bạn chạy playbook sai, làm production down mà không ai biết – sếp gọi hỏi “Ai làm vậy?”, cả đội ngơ ngác. Sau đó, mình thử AWX, dùng nó để chạy playbook tập trung, theo dõi lịch sử, và phân quyền rõ ràng – không còn “hỗn loạn” nữa! Ansible Tower AWX DevOps đặc biệt hữu ích khi đội lớn, cần quản lý nhiều playbook trên hàng trăm server – đúng là “vũ khí” cho DevOps chuyên nghiệp!

Chuẩn Bị Trước Khi Dùng AWX

Để dùng Ansible Tower AWX DevOps, bạn cần chuẩn bị:

  1. Máy Để Cài AWX: AWX chạy trên Docker, cần máy có RAM tối thiểu 4GB. Mình sẽ cài trên Ubuntu 20.04. Bạn có thể dùng máy local hoặc cloud instance (VD: EC2 từ bài 11).

  2. Cài Docker Và Docker Compose: Cài Docker:

    sudo apt update
    sudo apt install docker.io -y
    sudo systemctl start docker
    sudo systemctl enable docker

    Cài Docker Compose:

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose

    Mình từng quên khởi động Docker, AWX không chạy – mất cả tiếng debug.

  3. Cài AWX: Clone AWX từ GitHub:

    git clone https://github.com/ansible/awx.git
    cd awx/installer

    Sửa file inventory (không phải Ansible inventory):

    nano inventory

    Chỉnh dòng:

    admin_password=password
    secret_key=mysecretkey

    Chạy cài đặt:

    ansible-playbook -i inventory install.yml

    Quá trình cài mất 5-10 phút. Sau khi xong, AWX chạy trên port 80. Mình từng quên mở port 80 trên EC2, không truy cập được – suýt khóc vì tưởng cài sai.

Truy Cập Và Cấu Hình AWX

  1. Truy Cập Giao Diện Web: Mở trình duyệt, vào http://your_server_ip. Đăng nhập:

    • Username: admin
    • Password: password (đã set trong inventory). Mình hay đổi mật khẩu sau lần đăng nhập đầu, tránh để mặc định – an toàn hơn.
  2. Tạo Project: Trong AWX, project là nơi chứa playbook. Vào tab Projects > Add:

    • Name: My Playbooks
    • SCM Type: Git
    • SCM URL: URL Git chứa playbook (VD: GitHub repo của bạn). Mình sẽ dùng local Git repo để đơn giản:
      git init my_playbooks
      cd my_playbooks
      cp ../playbook_with_role.yml .
      git add .
      git commit -m "Add playbook"
  3. Tạo Inventory Trong AWX: Vào tab Inventories > Add:

    • Name: AWS Servers Thêm host (VD: 10.0.1.23 từ bài 12) qua Hosts > Add.

Chạy Playbook Qua AWX – Thực Hành Ngay

Giờ mình sẽ dùng AWX để chạy playbook playbook_with_role.yml (từ bài 7 – cài Nginx).

  1. Tạo Template (Job Template): Vào tab Templates > Add:

    • Name: Deploy Nginx
    • Job Type: Run
    • Inventory: AWS Servers
    • Project: My Playbooks
    • Playbook: playbook_with_role.yml
    • Credentials: Thêm SSH key để kết nối server (upload private key).
  2. Chạy Job: Nhấn nút Launch (hình tên lửa). AWX sẽ chạy playbook, bạn có thể xem log trực tiếp trên web. Kết quả sẽ giống như chạy ansible-playbook:

    TASK [nginx : Install Nginx] ************
    changed: [10.0.1.23]
    
    TASK [nginx : Create Nginx config from template] ****
    changed: [10.0.1.23]

    Kiểm tra:

    ssh ec2-user@10.0.1.23 "curl localhost:8080"

    Nếu thấy “Hello from Ansible Role!”, là thành công! Mình từng quên thêm SSH key, làm job fail – debug cả buổi mới ra.

Theo Dõi Và Phân Quyền – “Pro Hơn”

AWX cho phép:

  • Theo Dõi Job: Vào Jobs, xem lịch sử chạy, log chi tiết – không cần lục terminal.
  • Phân Quyền: Vào Users, thêm thành viên, gán quyền chạy job cụ thể. Mình từng dùng AWX để phân quyền: chỉ lead được chạy playbook production, team member chỉ chạy staging – giảm rủi ro đáng kể!

Mẹo Nhỏ Từ Kinh Nghiệm Thật

  • Mở Port Đúng: Nếu dùng EC2, mở port 80 trên security group – mình từng quên, không truy cập được AWX.
  • Backup Config: Lưu file inventory của AWX, phòng khi cài lại.
  • Dùng HTTPS: Cấu hình SSL cho AWX nếu dùng production – an toàn hơn.

Cảm Nhận Sau Khi Dùng AWX

Lần đầu dùng Ansible Tower AWX DevOps, mình thấy nó như “trung tâm điều khiển” thật – chạy playbook qua web, theo dõi log, phân quyền dễ dàng. So với terminal, AWX giúp quản lý team hiệu quả hơn, không còn “hỗn loạn”. Cảm giác như vừa “nâng cấp” DevOps lên tầm mới – tập trung và chuyên nghiệp!

Tiếp Theo Là Gì?

Bài này tụi mình đã làm quen với Ansible Tower AWX DevOps, từ cài đặt đến chạy playbook qua web. Lần sau, mình sẽ kể bạn nghe về best practices – cách viết Ansible “sạch” và hiệu quả hơn. Chịu không?

Thử Nghiệm Nhẹ: Thử thêm một job template khác trong AWX để chạy playbook check_disk.yml (bài 10). Có gì thắc mắc cứ nhắn mình nhé – AWX là bước lớn, làm quen tốt là bạn đã sẵn sàng quản lý quy mô lớn!

Điều hướng chuỗi bài viết<< Bài 13: Ansible Vault – Khóa Két Sắt Cho Bí Mật
>> Bài 15: Ansible Best Practices – Viết Ansible Sạch, Chạy Đỉnh Cao
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Có thể bạn quan tâm